Merge Files in Java
I often need to merge multiple files into one in Java. So I write a reusable method to do this job. It works very well for me to merge a set of txt files.
The method accepts an array of File and the merged file path. After running the method, the set of files to be merged will be merged into the specified 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(); } } } |
Output:
merging: s1
merging: s2
merging: s2
<pre><code> String foo = "bar"; </code></pre>
-
Cesar De la Cruz
-
sainath
-
Dan
-
Vishal Zanzrukia
-
JacobC