gpt4 book ai didi

java - 同时逐行读取两个文本文件-java

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:07 24 4
gpt4 key购买 nike

我有 2 个使用两种不同语言的文本文件,它们逐行对齐。 IE。 textfile1 中的第一行应该等于 textfile2 中的第一行,依此类推。

有没有办法同时逐行读取两个文件?

下面是文件的示例,假设每个文件的行数约为 1,000,000。

文本文件1:

This is a the first line in English
This is a the 2nd line in English
This is a the third line in English

文本文件2:

C'est la première ligne en Français
C'est la deuxième ligne en Français
C'est la troisième ligne en Français

期望的输出

This is a the first line in English\tC'est la première ligne en Français
This is a the 2nd line in English\tC'est la deuxième ligne en Français
This is a the third line in English\tC'est la troisième ligne en Français

目前,我可以使用它,但在 RAM 中保存几百万行会杀死我的机器。

String english = "/home/path-to-file/english";
String french = "/home/path-to-file/french";
BufferedReader enBr = new BufferedReader(new FileReader(english));
BufferedReader frBr = new BufferedReader(new FileReader(french));

ArrayList<String> enFile = new ArrayList<String>();
while ((line = enBr.readLine()) != null) {
enFile.add(line);
}

int index = 0;
while ((line = frBr.readLine()) != null) {
String enSentence = enFile.get(index);
System.out.println(line + "\t" + enSentence);
index++;
}

最佳答案

将对两个阅读器的 nextLine 调用放在同一个循环中:

String english = "/home/path-to-file/english";
String french = "/home/path-to-file/french";
BufferedReader enBr = new BufferedReader(new FileReader(english));
BufferedReader frBr = new BufferedReader(new FileReader(french));

while (true) {
String partOne = enBr.readLine();
String partTwo = frBr.readLine();

if (partOne == null || partTwo == null)
break;

System.out.println(partOne + "\t" + partTwo);
}

关于java - 同时逐行读取两个文本文件-java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10831007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com