1

我处于需要使用 java 程序加入一些非常大的文本文件的情况。

例如:

文件_01

line 01
line 02
line 03

文件_02

line 04
line 05
line 06

文件_03

line 07
line 08
line 09

输出文件需要像,

line 01
line 02
line 03
line 04
line 05
line 06
line 07
line 08
line 09

是否可以在不读取每个文件的每一行的情况下做到这一点?

4

2 回答 2

4

您可以使用 apaches Apache Commons IO 库,它有 FileUtils 类来合并两个文件。这是样本

// Files to read
File file1 = new File("file1.txt");
File file2 = new File("file2.txt");

// File to write
File file3 = new File("file3.txt");

// Read the file like string
String file1Str = FileUtils.readFileToString(file1);
String file2Str = FileUtils.readFileToString(file2);

// Write the file
FileUtils.write(file3, file1Str);
FileUtils.write(file3, file2Str, true); // true for append
于 2013-09-06T10:23:27.893 回答
2

如果不读取所有内容(至少其中一个)并将其写入另一个文件,就不可能合并两个文件。文件系统不支持该操作。如果您需要合并两个文件,您可以一个一个地读取它们(不需要一次一行,而是所有内容)并将其写入另一个文件。

编辑示例:

 BufferedReader br(in);
 String line;

 while ((line = br.readLine()) != null) {
      // write it out
 }
于 2013-09-06T13:28:28.313 回答