1. 程式人生 > 其它 >對比兩個檔案,並輸出相等的部分

對比兩個檔案,並輸出相等的部分

//比較兩個檔案,其中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; } } } }