Requisito previo: PrintWriter , BufferedReader.
Nos dan un directorio/carpeta en el que se almacenan n número de archivos (no sabemos el número de archivos) y queremos fusionar el contenido de todos los archivos en un solo archivo, digamos salida.txt
Para el siguiente ejemplo, digamos la carpeta se almacena en la ruta: F:\GeeksForGeeks Los
siguientes son los pasos:
- Crear instancia de directorio.
- Cree un objeto PrintWriter para «output.txt».
- Obtenga una lista de todos los archivos en forma de String Array.
- Bucle para leer el contenido de todos los archivos en el directorio GeeksForGeeks.
- Dentro del bucle para cada archivo do
-
- Cree una instancia de archivo a partir del Nombre del archivo almacenado en la array de strings.
- Crear objeto de BufferedReader para leer desde el archivo actual.
- Leer del archivo actual.
- Escribir en el archivo de salida.
Java
// Java program to merge all files of a directory import java.io.*; class sample { public static void main(String[] args) throws IOException { // create instance of directory File dir = new File("F:\\GeeksForGeeks"); // create object of PrintWriter for output file PrintWriter pw = new PrintWriter("output.txt"); // Get list of all the files in form of String Array String[] fileNames = dir.list(); // loop for reading the contents of all the files // in the directory GeeksForGeeks for (String fileName : fileNames) { System.out.println("Reading from " + fileName); // create instance of file from Name of // the file stored in string Array File f = new File(dir, fileName); // create object of BufferedReader BufferedReader br = new BufferedReader(new FileReader(f)); pw.println("Contents of file " + fileName); // Read from current file String line = br.readLine(); while (line != null) { // write to the output file pw.println(line); line = br.readLine(); } pw.flush(); } System.out.println("Reading from all files" + " in directory " + dir.getName() + " Completed"); } }
Contenido de la carpeta F\GeeksForGeeks
Contenido de 3 archivos en la carpeta GeeksForGeeks:
Archivo de salida:
Publicación traducida automáticamente
Artículo escrito por SandySharma y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA