詳解使用Java代碼讀取并比較本地兩個(gè)txt文件區(qū)別
Java代碼讀取本地兩個(gè)TXT文件
以下是使用Java代碼讀取本地兩個(gè)TXT文件,并以行為單位比較兩個(gè)文件的不同的示例:
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() 方法可以直接讀取文件的所有行,并返回一個(gè)流。然后,可以使用流的各種操作(如 filter 和 collect)對(duì)文件進(jìn)行處理。
兩個(gè)文件內(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
請(qǐng)確保替換 fileAPath 和 fileBPath 變量的值為實(shí)際的文件路徑。以上代碼會(huì)比較文件 A 中的每一行是否存在于文件 B 中,并將文件 A 中獨(dú)有的行打印出來。
請(qǐng)注意,以上代碼假設(shè)文件內(nèi)容較小,可以一次性讀取到內(nèi)存中。如果文件較大,可能需要采用逐行讀取和緩存的方式進(jìn)行比較,以避免內(nèi)存溢出。
以上就是詳解使用Java代碼讀取并比較本地兩個(gè)txt文件區(qū)別的詳細(xì)內(nèi)容,更多關(guān)于Java 讀取比較本地txt文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
spring依賴注入成功但在調(diào)用接口的時(shí)候拿到的依賴卻是null問題
這篇文章主要介紹了spring依賴注入成功但在調(diào)用接口的時(shí)候拿到的依賴卻是null問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
springboot項(xiàng)目啟動(dòng),但是訪問報(bào)404錯(cuò)誤的問題
這篇文章主要介紹了springboot項(xiàng)目啟動(dòng),但是訪問報(bào)404錯(cuò)誤的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
SpringBoot+Idea熱部署實(shí)現(xiàn)流程解析
這篇文章主要介紹了SpringBoot+Idea熱部署實(shí)現(xiàn)流程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
java使用FFmpeg合成視頻和音頻并獲取視頻中的音頻等操作(實(shí)例代碼詳解)
這篇文章主要介紹了java使用FFmpeg合成視頻和音頻并獲取視頻中的音頻等操作,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02
Java利用FileUtils讀取數(shù)據(jù)和寫入數(shù)據(jù)到文件
這篇文章主要介紹了Java利用FileUtils讀取數(shù)據(jù)和寫入數(shù)據(jù)到文件,下面文章圍繞FileUtils的相關(guān)資料展開怎么讀取數(shù)據(jù)和寫入數(shù)據(jù)到文件的內(nèi)容,具有一定的參考價(jià)值,徐婭奧德小伙伴可以參考一下2021-12-12
java實(shí)現(xiàn)ReadWriteLock讀寫鎖的示例
ReadWriteLock是Java并發(fā)包中的接口,定義了讀鎖和寫鎖,讀鎖允許多線程同時(shí)訪問共享資源,而寫鎖則要求獨(dú)占,這種機(jī)制適用于讀多寫少的場(chǎng)景,可以提高并發(fā)效率同時(shí)保證數(shù)據(jù)一致性,本文就來詳細(xì)的介紹一下如何實(shí)現(xiàn),感興趣的可以了解一下2024-09-09
SpringBoot使用classfinal-maven-plugin插件加密Jar包的示例代碼
這篇文章給大家介紹了SpringBoot使用classfinal-maven-plugin插件加密Jar包的實(shí)例,文中通過代碼示例和圖文講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-02-02

