java 多线程合并文件
时间: 2023-11-04 18:58:29 浏览: 62
在Java中,可以使用多线程来合并文件。下面是一个简单的示例代码,使用了两个线程来同时读取两个文件,并将它们的内容合并到一个新的文件中:
```java
import java.io.*;
public class FileMerger {
public static void main(String[] args) {
// 创建两个线程分别读取两个文件
Thread thread1 = new Thread(() -> mergeFiles("file1.txt"));
Thread thread2 = new Thread(() -> mergeFiles("file2.txt"));
// 启动线程
thread1.start();
thread2.start();
try {
// 等待两个线程执行完毕
thread1.join();
thread2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("文件合并完成");
}
private static void mergeFiles(String fileName) {
try (BufferedReader reader = new BufferedReader(new FileReader(fileName));
BufferedWriter writer = new BufferedWriter(new FileWriter("merged.txt", true))) {
String line;
while ((line = reader.readLine()) != null) {
writer.write(line);
writer.newLine();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
上述代码中,我们创建了两个线程,每个线程负责读取一个文件的内容,并将其写入到一个新的文件"merged.txt"中。通过调用`thread1.join()`和`thread2.join()`,主线程会等待这两个线程执行完毕后再继续执行,从而确保文件合并完成。