Como ler todos os arquivos de uma pasta em Java
- Como ler todos os arquivos de uma pasta em Java
-
Leia todos os arquivos de uma pasta utilizando a classe
Files
em Java -
Leia todos os arquivos de uma pasta utilizando o
newDirectoryStream()
metodo em Java -
Leia todos os arquivos de uma pasta utilizando o método
walkFileTree()
em Java
Este tutorial introduz como ler todos os arquivos de uma pasta em Java e lista alguns exemplos de códigos para entendê-la.
Há várias maneiras de obter todos os arquivos de uma pasta. Aqui podemos utilizar as classes File
, Files
e DirectoryStream
, e muitas outras. Vamos ver os exemplos.
Como ler todos os arquivos de uma pasta em Java
Aqui, utilizamos a classe File
para coletar todos os arquivos e pastas no diretório de origem e depois utilizamos o método isDirectory()
para verificar se se trata de um arquivo ou pasta. Veja o exemplo abaixo.
import java.io.File;
import java.text.ParseException;
public class SimpleTesting {
public static void findAllFilesInFolder(File folder) {
for (File file : folder.listFiles()) {
if (!file.isDirectory()) {
System.out.println(file.getName());
} else {
findAllFilesInFolder(file);
}
}
}
public static void main(String[] args) throws ParseException {
File folder = new File("/home/folder/src");
findAllFilesInFolder(folder);
}
}
Leia todos os arquivos de uma pasta utilizando a classe Files
em Java
Se você quiser utilizar o Stream
, utilize o método walk()
de classe Files
que retorna um Path Stream
. Depois disso, utilizamos o método filter()
para coletar somente arquivos e utilizamos forEach()
para imprimi-los.
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;
public class SimpleTesting {
public static void main(String[] args) throws IOException {
try (Stream<Path> paths = Files.walk(Paths.get("/home/folder/src"))) {
paths.filter(Files::isRegularFile).forEach(System.out::println);
}
}
}
Leia todos os arquivos de uma pasta utilizando o newDirectoryStream()
metodo em Java
Aqui, utilizamos a classe Files
e seu método newDirectoryStream()
que retorna um fluxo de Path
. Depois disso, utilizamos um loop for-each
para iterar a lista de arquivos e imprimir o nome do arquivo.
import java.io.IOException;
import java.nio.file.DirectoryIteratorException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class SimpleTesting {
public static void main(String[] args) throws IOException {
try (DirectoryStream<Path> stream = Files.newDirectoryStream(Paths.get("/home/folder/src/"))) {
for (Path file : stream) {
System.out.println(file.getFileName());
}
} catch (IOException | DirectoryIteratorException ex) {
System.err.println(ex);
}
}
}
Leia todos os arquivos de uma pasta utilizando o método walkFileTree()
em Java
Aqui, utilizamos o método walkFileTree()
da classe Files
que leva dois argumentos: a pasta de origem e a referência SimpleFileVisitor
. Veja o exemplo abaixo.
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
public class SimpleTesting {
public static void main(String[] args) throws IOException {
SimpleFileVisitor<Path> file = new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path filePath, BasicFileAttributes attrs)
throws IOException {
System.out.println(filePath);
return FileVisitResult.CONTINUE;
}
};
Files.walkFileTree(Paths.get("/home/folder/src"), file);
}
}
Artigo relacionado - Java File
- Como remover quebras de linha formam um arquivo em Java
- Copiar um arquivo em Java
- Obtenha a contagem de linha de um arquivo em Java
- Abra um arquivo em Java
- Grave o byte no arquivo em Java
- Anexar texto a um arquivo de texto em Java