我想逐行读取一个大的 ASCII 文本文件(20GB)并将这些行的一部分复制到一个单独的文件中。以下示例代码在写入输出文件时会丢失数据。我用一些 printlns 测试了 Reader 并按预期工作。我试图增加 BufferedWriter 的缓冲区,但没有任何改善。flush() 也不起作用。在这种情况下,输出文件应该是 40MB 左右。
我希望你能帮助我,问候蒂姆
public void split() throws Exception{
BufferedReader inStream = new BufferedReader(new FileReader("input.txt"));
BufferedWriter outStream = new BufferedWriter(new FileWriter("output.txt"));
for(int i=0;i<700000;i++){
String tempString = inStream.readLine().trim();
if(doOtherStuff(tempString,i)){
break;
}
outStream.write(tempString);
outStream.newLine();
}
inStream.close();
outStream.close();
}