对比两个文件,并输出相等的部分
//比较两个文件,其中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; } } } }