![6f900e15bb88d0b0a598a80aae84881e.png](https://i-blog.csdnimg.cn/blog_migrate/b593068b8b53960f8ae02eb0fa9b05ca.jpeg)
我经常需要用Java将多个文件合并为一个文件。因此,我编写了一种可重用的方法来完成这项工作。对我来说,合并一组txt文件非常有效。
该方法接受File数组和合并的文件路径。运行该方法后,要合并的文件集将被合并到指定的文件中。
package com.programcreek;
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;
public class MergerFiles {
public static void main(String[] args) {
String sourceFile1Path = "/home/programcreek/Desktop/s1";
String sourceFile2Path = "/home/programcreek/Desktop/s2";
String mergedFilePath = "/home/programcreek/Desktop/m";
File[] files = new File[2];
files[0] = new File(sourceFile1Path);
files[1] = new File(sourceFile2Path);
File mergedFile = new File(mergedFilePath);
mergeFiles(files, mergedFile);
}
public static void mergeFiles(File[] files, File mergedFile) {
FileWriter fstream = null;
BufferedWriter out = null;
try {
fstream = new FileWriter(mergedFile, true);
out = new BufferedWriter(fstream);
} catch (IOException e1) {
e1.printStackTrace();
}
for (File f : files) {
System.out.println("merging: " + f.getName());
FileInputStream fis;
try {
fis = new FileInputStream(f);
BufferedReader in = new BufferedReader(new InputStreamReader(fis));
String aLine;
while ((aLine = in.readLine()) != null) {
out.write(aLine);
out.newLine();
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}}
输出:
merging: s1
merging: s2
最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。
![e7a56c2ba2171f4a7eaba440456a1c45.png](https://i-blog.csdnimg.cn/blog_migrate/5e354694d0612e0e1b6c9e5480628e28.jpeg)
![7abd3210119bba4f339829298a91367f.png](https://i-blog.csdnimg.cn/blog_migrate/6ad9a8d71c88a060b0d536eb7f35b074.jpeg)