有时候,我们的IO要求实现将两个文件的内容合并到一个文件里来。
比如,我们有一个
1.txt
,一个2.txt
。我们该如何将两个文件里面的内容,合并到3.txt
呢?
//1.txt字符输入流与字符缓冲输入流
FileReader fr = new FileReader("D:\\1.txt");
BufferedReader br = new BufferedReader(fr);
我们这里使用了缓存流来读取。
//2.txt字符输入流与字符缓冲输入流
FileReader fr2 = new FileReader("D:\\2.txt");
BufferedReader br2 = new BufferedReader(fr2);
我们这里使用了缓存流来读取。
//3.txt字符输出流与字符缓冲输出流
FileWriter fw3 = new FileWriter("D:\\3.txt");
BufferedWriter bw3 = new BufferedWriter(fw3);
我们这里和上面有所不同,我们需要的是缓冲流的写入,所以我们是使用BufferedWriter
对象。
//读取1.txt文件内容并循环写入
String line = br.readLine();
while (line != null) {
bw3.write(line);
bw3.newLine();
line = br.readLine();
}
//读取2.txt文件内容并循环写入
String line2 = br2.readLine();
while (line2 != null) {
bw3.write(line2);
bw3.newLine();
line2 = br2.readLine();
}
最后,我们一定要关闭缓冲流,这样才能写入。
//刷新缓冲区
bw3.flush();
//关闭流
br.close();
br2.close();
bw3.close();
package IoDemo;
import java.io.*;
public class TwoFile {
public static void main(String[] args) {
try {
//1.txt字符输入流与字符缓冲输入流
FileReader fr = new FileReader("D:\\1.txt");
BufferedReader br = new BufferedReader(fr);
//2.txt字符输入流与字符缓冲输入流
FileReader fr2 = new FileReader("D:\\2.txt");
BufferedReader br2 = new BufferedReader(fr2);
//3.txt字符输出流与字符缓冲输出流
FileWriter fw3 = new FileWriter("D:\\3.txt");
BufferedWriter bw3 = new BufferedWriter(fw3);
//读取1.txt文件内容
String line = br.readLine();
while (line != null) {
bw3.write(line);
bw3.newLine();
line = br.readLine();
}
//读取2.txt文件内容
String line2 = br2.readLine();
while (line2 != null) {
bw3.write(line2);
bw3.newLine();
line2 = br2.readLine();
}
//刷新缓冲区
bw3.flush();
//关闭流
br.close();
br2.close();
bw3.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
输出一下3.txt
,如下: