我处于需要使用 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
是否可以在不读取每个文件的每一行的情况下做到这一点?
我处于需要使用 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
是否可以在不读取每个文件的每一行的情况下做到这一点?
您可以使用 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
如果不读取所有内容(至少其中一个)并将其写入另一个文件,就不可能合并两个文件。文件系统不支持该操作。如果您需要合并两个文件,您可以一个一个地读取它们(不需要一次一行,而是所有内容)并将其写入另一个文件。
编辑示例:
BufferedReader br(in);
String line;
while ((line = br.readLine()) != null) {
// write it out
}