papackage map;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.HashMap;
public class testHash {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
String fullFile = "E:\\hashTXT\\11M.txt";
String partFile = "E:\\hashTXT\\pubmed1-11M.txt";
String missFile = "E:\\hashTXT\\missFile.txt";
getFile(fullFile, partFile, missFile);
}
public static void getFile(String fullFile, String partFile, String missFile)
throws Exception {
//得到系统换行符
String lineSeparator = System.getProperty("line.separator");
HashMap<Integer, Integer> map = new HashMap<>();
File secFile= new File(fullFile);
File firFile = new File(partFile);
OutputStream os = new FileOutputStream(missFile);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
BufferedReader reader, reader2 = null;
reader = new BufferedReader(new FileReader(firFile));
reader2 = new BufferedReader(new FileReader(secFile));
String readLine = reader.readLine();
String readLine2 = reader2.readLine();
int i = 0;
//读partFile 把文件的每一行作为map的key
while (readLine != null) {
map.put(Integer.parseInt(readLine), ++i);
readLine = reader.readLine();
}
//读取fullFile 把读取的每一行拿过去和map的key比较,如果读到的这一行不存在,就输出这样一行
while (readLine2 != null) {
int flag = Integer.parseInt(readLine2);
if (map.get(flag) == null) {
bw.write((flag - 19) + "---" + flag + lineSeparator);
System.out.println((flag - 19) + "---" + flag);
}
readLine2 = reader2.readLine();
}
bw.flush();
bw.close();
}
}
转载于:https://my.oschina.net/yimi88/blog/413501