詳解使用Java代碼讀取并比較本地兩個txt文件區(qū)別
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風格可
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)對文件進行處理。
兩個文件內容如圖所示

打印結果
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 中獨有的行打印出來。
請注意,以上代碼假設文件內容較小,可以一次性讀取到內存中。如果文件較大,可能需要采用逐行讀取和緩存的方式進行比較,以避免內存溢出。
以上就是詳解使用Java代碼讀取并比較本地兩個txt文件區(qū)別的詳細內容,更多關于Java 讀取比較本地txt文件的資料請關注腳本之家其它相關文章!
相關文章
SpringCloud讀取Nacos配置中心報錯及遇到的坑:Could?not?resolve?placehold
這篇文章主要介紹了SpringCloud讀取Nacos配置中心報錯:Could?not?resolve?placeholder?‘xxx’?in?value?‘${xxx},本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
一篇文章教你如何在SpringCloud項目中使用OpenFeign
這篇文章主要介紹了SpringCloud 使用Open feign 優(yōu)化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-08-08
通過實例了解Java 8創(chuàng)建Stream流的5種方法
這篇文章主要介紹了通過實例了解Java 8創(chuàng)建Stream流的5種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-12-12
SpringBoot3使用?自定義注解+Jackson實現接口數據脫敏的步驟
本文介紹了一種以優(yōu)雅的方式實現對接口返回的敏感數據,如手機號、郵箱、身份證等信息的脫敏處理,這種方法也是企業(yè)常用方法,話不多說我們一起來看一下吧2024-03-03

