//比较两个文件,其中A文件每行有三个关键字,A1\A2\A3,B文件每行有2个关键字,B1\B2
// 找出A2=B2的那一行,并输出该行的 A1~B2的值(输出到一个新文件中)
import java.io.*;
import java.util.HashMap;
//比较两个文件,其中A文件每行有三个关键字,A1\A2\A3,B文件每行有2个关键字,B1\B2
// 找出A2=B2的那一行,并输出该行的 A1~B2的值(输出到一个新文件中)
public class FileWriterTest {
public static void main(String[] args) throws IOException {
Reader f1 = new FileReader("C:\\Users\\zhangxiaocui\\Desktop\\word.txt");
BufferedReader a1= new BufferedReader(f1);
Reader f2 = new FileReader("C:\\Users\\zhangxiaocui\\Desktop\\word1.txt");
BufferedReader a2 = new BufferedReader(f2);
Writer f3 = new FileWriter("C:\\Users\\zhangxiaocui\\Desktop\\result.txt");
BufferedWriter a3= new BufferedWriter(f3);
String line;
String line1,line2;
HashMap<String,String> result = new HashMap<>();
// 读取第一个文件,并将文件中A2关键字与该行内容记录下来
while((line = a1.readLine())!=null){
line1=line.split("\\s+")[1];
result.put(line1,line);
}
// 读取第二个文件,并找出B2关键字与A2相等的那一行
while((line = a2.readLine())!=null){
line2 = line.split("\\s+")[1];
if(result.containsKey(line2)){
// 写入对应的B行的值
a3.write(line);
// 换行
a3.newLine();
// 写入对应的A行的值
a3.write(result.get(line2));
a3.flush();
a3.close();
break;
}
}
}
}