txt texto sobreescribir por mostrar modificar manejo linea leer guardar ejemplos datos contenido como archivos archivo java bufferedreader

texto - Java-Lee todos los archivos.txt en la carpeta



mostrar el contenido de un archivo txt en java (6)

Algo como lo siguiente debería hacer que te pongas en marcha, ten en cuenta que uso Apache commons FileUtils en lugar de meterme con búferes y flujos para simplificar ...

File folder = new File("/path/to/files"); File[] listOfFiles = folder.listFiles(); for (int i = 0; i < listOfFiles.length; i++) { File file = listOfFiles[i]; if (file.isFile() && file.getName().endsWith(".txt")) { String content = FileUtils.readFileToString(file); /* do somthing with content */ } }

Digamos, tengo una carpeta llamada maps y dentro de maps tengo map1.txt , map2.txt, y map3.txt . ¿Cómo puedo usar Java y BufferReader para leer todos los archivos .txt en los maps carpetas (si es posible)?


Creo que es una buena manera de leer todos los archivos .txt de los mapas y las subcarpetas

private static void addfiles (File input,ArrayList<File> files) { if(input.isDirectory()) { ArrayList <File> path = new ArrayList<File>(Arrays.asList(input.listFiles())); for(int i=0 ; i<path.size();++i) { if(path.get(i).isDirectory()) { addfiles(path.get(i),files); } if(path.get(i).isFile()) { String name=(path.get(i)).getName(); if(name.lastIndexOf(''.'')>0) { int lastIndex = name.lastIndexOf(''.''); String str = name.substring(lastIndex); if(str.equals(".txt")) { files.add(path.get(i)); } } } } } if(input.isFile()) { String name=(input.getName()); if(name.lastIndexOf(''.'')>0) { int lastIndex = name.lastIndexOf(''.''); String str = name.substring(lastIndex); if(str.equals(".txt")) { files.add(input); } } } }


Si desea una mejor manera de hacerlo usando la nueva ji.iio api, entonces esta es la forma, tomada de los documentos java.

Path dir = ...; try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, "*.txt")) { for (Path entry: stream) { System.out.println(entry.getFileName()); } } catch (IOException x) { // IOException can never be thrown by the iteration. // In this snippet, it can // only be thrown by newDirectoryStream. System.err.println(x); }


Tomaría la respuesta de @Andrew White (+1 BTW) un paso más allá y sugiero que use FileNameFilter para enumerar solo los archivos relevantes:

FilenameFilter filter = new FilenameFilter() { public boolean accept(File dir, String name) { return name.endsWith(".txt"); } }; File folder = new File("/path/to/files"); File[] listOfFiles = folder.listFiles(filter); for (int i = 0; i < listOfFiles.length; i++) { File file = listOfFiles[i]; String content = FileUtils.readFileToString(file); // do something with the file }


Usando solo JDK, si todos sus archivos están en un directorio:

File dir = new File("path/to/files/"); for (File file : dir.listFiles()) { Scanner s = new Scanner(file); // do something with file s.close(); }

Para excluir archivos, puede usar listFiles(FileFilter)


final File folder = new File("C:/Dev Tools/apache-tomcat-6.0.37/webapps/ROOT/somefile"); for (final File fileEntry : folder.listFiles()) { System.out.println("FileEntry Directory "+fileEntry);