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