Adding multiple files to one

I have 4 different files in some places, for example: D: \ 1.txt D: \ 2.txt D: \ 3.txt and D: \ 4.txt

I need to create a new file as NewFile.txt , it should contain all the contents contained in the above files 1.txt, 2.txt, 3.txt 4.txt .......

All data must be present in a new separate file (NewFile.txt) ..

Please offer me some ideas to do the same in java or Groovy ....

+8
java string file groovy
source share
6 answers

Here is one way to do it in Groovy:

// Get a writer to your new file new File( '/tmp/newfile.txt' ).withWriter { w -> // For each input file path ['/tmp/1.txt', '/tmp/2.txt', '/tmp/3.txt'].each { f -> // Get a reader for the input file new File( f ).withReader { r -> // And write data from the input into the output w << r << '\n' } } } 

The advantage of this method (when calling getText in each of the source files) is that it will not need to load the entire file into memory before writing its contents to newfile . If one of your files was huge, the other method may fail.

+9
source share

It is in groovy

 def allContentFile = new File("D:/NewFile.txt") def fileLocations = ['D:/1.txt' , 'D:/2.txt' , 'D:/3.txt' , 'D:/4.txt'] fileLocations.each{ allContentFile.append(new File(it).getText()) } 
+2
source share

I tried to solve this, and I found it pretty easy if you copy the contents to an array and write the array to another file

 public class Fileread { public static File read(File f,File f1) throws FileNotFoundException { File file3=new File("C:\\New folder\\file3.txt"); PrintWriter output=new PrintWriter(file3); ArrayList arr=new ArrayList(); Scanner sc=new Scanner(f); Scanner sc1=new Scanner(f1); while(sc.hasNext()) { arr.add(sc.next()); } while(sc1.hasNext()) { arr.add(sc1.next()); } output.print(arr); output.close(); return file3; } /** * * @param args * @throws FileNotFoundException */ public static void main(String[] args) { try { File file1=new File("C:\\New folder\\file1.txt"); File file2=new File("C:\\New folder\\file2.txt"); File file3=read(file1,file2); Scanner sc=new Scanner(file3); while(sc.hasNext()) System.out.print(sc.next()); } catch(Exception e) { System.out.printf("Error :%s",e); } } } 
+1
source share

I will show you how to do this in java:

 public class Readdfiles { public static void main(String args[]) throws Exception { String []filename={"C:\\WORK_Saurabh\\1.txt","C:\\WORK_Saurabh\\2.txt"}; File file=new File("C:\\WORK_Saurabh\\new.txt"); FileWriter output=new FileWriter(file); try { for(int i=0;i<filename.length;i++) { BufferedReader objBufferedReader = new BufferedReader(new FileReader(getDictionaryFilePath(filename[i]))); String line; while ((line = objBufferedReader.readLine())!=null ) { line=line.replace(" ",""); output.write(line); } objBufferedReader.close(); } output.close(); } catch (Exception e) { throw new Exception (e); } } public static String getDictionaryFilePath(String filename) throws Exception { String dictionaryFolderPath = null; File configFolder = new File(filename); try { dictionaryFolderPath = configFolder.getAbsolutePath(); } catch (Exception e) { throw new Exception (e); } return dictionaryFolderPath; } } 

tell me if you have any doubts.

0
source share

You can do something similar in Java. Hope this helps you solve your problem:

 import java.io.*; class FileRead { public void readFile(String[] args) { for (String textfile : args) { try{ // Open the file that is the first // command line parameter FileInputStream fstream = new FileInputStream(textfile); // Get the object of DataInputStream DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; //Read File Line By Line while ((strLine = br.readLine()) != null) { // Print the content on the console System.out.println (strLine); // Write to the new file FileWriter filestream = new FileWriter("Combination.txt",true); BufferedWriter out = new BufferedWriter(filestream); out.write(strLine); //Close the output stream out.close(); } //Close the input stream in.close(); }catch (Exception e){//Catch exception if any System.err.println("Error: " + e.getMessage()); } } } public static void main(String args[]) { FileRead myReader = new FileRead(); String fileArray[] = {"file1.txt", "file2.txt", "file3.txt", "file4.txt"}; myReader.readFile(fileArray); } } 
0
source share

Example of one liner:

 def out = new File(".all_profiles") ['.bash_profile', '.bashrc', '.zshrc'].each {out << new File(it).text} 

OR

 ['.bash_profile', '.bashrc', '.zshrc'].collect{new File(it)}.each{out << it.text} 

Tim's implementation is better if you have large files.

0
source share

All Articles