Wie man alle Dateien eines Ordners in Java liest
- Wie man alle Dateien eines Ordners in Java liest
-
Alle Dateien eines Ordners mit der Klasse
Files
in Java lesen -
Lesen aller Dateien aus einem Ordner mit der
newDirectoryStream()
Methode in Java -
Lesen aller Dateien eines Ordners mit der
walkFileTree()
Methode in Java
Dieses Tutorial führt ein, wie man alle Dateien eines Ordners in Java liest und listet einige Beispielcodes auf, um es zu verstehen.
Es gibt verschiedene Möglichkeiten, alle Dateien eines Ordners zu erhalten. Hier könnten wir die Klassen File
, Files
und DirectoryStream
und viele andere verwenden. Lassen Sie uns die Beispiele sehen.
Wie man alle Dateien eines Ordners in Java liest
Hier verwenden wir die Klasse File
, um alle Dateien und Ordner im Quellverzeichnis zu sammeln, und verwenden dann die Methode isDirectory()
, um zu prüfen, ob es sich um eine Datei oder einen Ordner handelt. Siehe das Beispiel unten.
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);
}
}
Alle Dateien eines Ordners mit der Klasse Files
in Java lesen
Wenn Sie stream verwenden möchten, verwenden Sie die Methode walk()
der Klasse Files
, die einen Path
-Stream zurückgibt. Danach verwenden wir die Methode filter()
, um nur Dateien zu sammeln und verwenden forEach()
, um sie zu drucken.
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);
}
}
}
Lesen aller Dateien aus einem Ordner mit der newDirectoryStream()
Methode in Java
Hier verwenden wir die Klasse Files
und ihre Methode newDirectoryStream()
, die einen Strom von Path
zurückgibt. Danach verwenden wir eine for-each
-Schleife, um die Liste der Dateien zu iterieren und den Dateinamen zu drucken.
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);
}
}
}
Lesen aller Dateien eines Ordners mit der walkFileTree()
Methode in Java
Hier verwenden wir die Methode walkFileTree()
der Klasse Files
, die zwei Argumente benötigt: den Quellordner und die Referenz SimpleFileVisitor
. Siehe das Beispiel unten.
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);
}
}
Verwandter Artikel - Java File
- Wie man Zeilenumbrüche aus einer Datei in Java entfernt
- Schließen Sie eine Datei in Java
- Dateifilter in Java
- Dateigröße in Java abrufen
- Dateitrenner in Java
- Erstellen Sie eine Java-JAR-Datei und führen Sie sie aus