欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解使用Java代碼讀取并比較本地兩個txt文件區(qū)別

 更新時間:2023年07月11日 11:36:26   作者:今夜有點兒涼  
這篇文章主要為大家介紹了使用Java代碼讀取并比較本地兩個txt文件區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Java代碼讀取本地兩個TXT文件

以下是使用Java代碼讀取本地兩個TXT文件,并以行為單位比較兩個文件的不同的示例:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FileComparator {
    public static void main(String[] args) {
        String fileAPath = "C:/Users/MAO/Desktop/A.txt";
        String fileBPath = "C:/Users/MAO/Desktop/B.txt";
        List<String> fileALines = readFileLines(fileAPath);
        List<String> fileBLines = readFileLines(fileBPath);
        List<String> uniqueLinesInFileA = new ArrayList<>();
        for (String line : fileALines) {
            if (!fileBLines.contains(line)) {
                uniqueLinesInFileA.add(line);
            }
        }
        List<String> uniqueLinesInFileB = new ArrayList<>();
        for (String line : fileBLines) {
            if (!fileALines.contains(line)) {
                uniqueLinesInFileB.add(line);
            }
        }
        // 文件A中不在文件B中的行
        System.out.println("Lines in file A that are not in file B:");
        for (String line : uniqueLinesInFileA) {
            System.out.println(line);
        }
        // 文件B中不在文件A中的行
        System.out.println("Lines in file B that are not in file A:");
        for (String line : uniqueLinesInFileB) {
            System.out.println(line);
        }
    }
    private static List<String> readFileLines(String filePath) {
        List<String> lines = new ArrayList<>();
        try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
            String line;
            while ((line = reader.readLine()) != null) {
                lines.add(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return lines;
    }
}

JAVA 8風(fēng)格可

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
public class FileComparator {
    public static void main(String[] args) throws IOException {
        String fileAPath = "C:/Users/MAO/Desktop/A.txt";
        String fileBPath = "C:/Users/MAO/Desktop/B.txt";
        List<String> fileALines = Files.lines(Paths.get(fileAPath))
                .collect(Collectors.toList());
        List<String> fileBLines = Files.lines(Paths.get(fileBPath))
                .collect(Collectors.toList());
        // 文件A中不在文件B中的行
        List<String> uniqueLinesInFileA = fileALines.stream()
                .filter(line -> !fileBLines.contains(line))
                .collect(Collectors.toList());
        // 文件B中不在文件A中的行
        List<String> uniqueLinesInFileB = fileBLines.stream()
                .filter(line -> !fileALines.contains(line))
                .collect(Collectors.toList());
        System.out.println("Lines in file A that are not in file B:");
        uniqueLinesInFileA.forEach(System.out::println);
        System.out.println("Lines in file B that are not in file A:");
        uniqueLinesInFileB.forEach(System.out::println);
    }
}

使用Java 8 的 Files.lines() 方法可以直接讀取文件的所有行,并返回一個流。然后,可以使用流的各種操作(如 filter 和 collect)對文件進(jìn)行處理。

兩個文件內(nèi)容如圖所示

打印結(jié)果

Lines in file A that are not in file B:
6666
Lines in file B that are not in file A:
666

請確保替換 fileAPath 和 fileBPath 變量的值為實際的文件路徑。以上代碼會比較文件 A 中的每一行是否存在于文件 B 中,并將文件 A 中獨有的行打印出來。

請注意,以上代碼假設(shè)文件內(nèi)容較小,可以一次性讀取到內(nèi)存中。如果文件較大,可能需要采用逐行讀取和緩存的方式進(jìn)行比較,以避免內(nèi)存溢出。

以上就是詳解使用Java代碼讀取并比較本地兩個txt文件區(qū)別的詳細(xì)內(nèi)容,更多關(guān)于Java 讀取比較本地txt文件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論