The listFiles() method of the File class returns an array holding the objects (abstract paths) of all the files (and directories) in the path represented by the current (File) object.
To read the contents of all the files in a folder into a single file −
- Create a file object by passing the required file path as a parameter.
- Read the contents of each file using Scanner or any other reader.
- Append the read contents into a StringBuffer.
- Write the StringBuffer contents into the required output file.
Example
import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.Scanner; public class Test { public static void main(String args[]) throws IOException { //Creating a File object for directory File directoryPath = new File("D:\\SampleDirectory"); //List of all files and directories File filesList[] = directoryPath.listFiles(); System.out.println("List of files and directories in the specified directory:"); Scanner sc = null; StringBuffer sb = new StringBuffer(); for(File file : filesList) { System.out.println("File name: "+file.getName()); System.out.println("File path: "+file.getAbsolutePath()); System.out.println("Size :"+file.getTotalSpace()); //Instantiating the Scanner class sc= new Scanner(file); String input; while (sc.hasNextLine()) { input = sc.nextLine(); sb.append(input+" "); } System.out.println("Contents of the file: "+sb.toString()); System.out.println(" "); //Instantiating the FileOutputStream class FileOutputStream fileOut = new FileOutputStream("D:\\output.txt"); //Instantiating the DataOutputStream class DataOutputStream outputStream = new DataOutputStream(fileOut); //Writing UTF data to the output stream outputStream.write(sb.toString().getBytes()); outputStream.flush(); System.out.println("Data entered into the file"); } } }
Output
List of files and directories in the specified directory: File name: sample1.txt File path: D:\SampleDirectory\sample1.txt Contents of the file: sample text file1 Data entered into the file File name: sample2.txt File path: D:\SampleDirectory\sample2.txt Contents of the file: sample text file2 Data entered into the file File name: sample3.txt File path: D:\SampleDirectory\sample3.txt Contents of the file: sample text file3 Data entered into the file