Heute gehen wir von den Java 7 Neuerungen im Bereich NIO weitere Methoden der Files Klasse an:
Path p = Paths.get(“c:/”); DirectoryStream<Path> files = Files.newDirectoryStream(p); try { for(Path fp : files) System.out.println(fp.getFileName()); } finally { files.close(); }
Mittel der Methode in Zeile 2 wird ein Stream geöffnet um alle Dateien und Verzeichnisse in einem gegebenen Pfad aufzulisten. Die zum Auslesen des Verzeichnisinhalts vorgesehene newDirectoryStream Methode ist in drei Ausprägungen vorhanden. Z.B. einen simplen Aufruf auf den Pfad wie im obrigen Beispiel. Auch gibt es eine Methode die diverse Filter annimmt, mit der man z.B. nach Dateigrößen aussortieren kann. Oder aber eine andere Ausprägung, bei der man mittels Regex Expression den Dateinamen filtern kann.
DirectoryStream implementiert das Interface Iterable und ist daher über foreach auslesbar. Da aber damit nicht alle auf einmal ausgelesen werden muss man den Stream wieder schließen. Da er das Closable Interface implementiert und damit auch AutoClosable kann der Stream innerhalb des neuen trycatch Mechanismus automatisch geschlossen werden wie vorherige Woche beschrieben.
Happy NIOing
Schreibe einen Kommentar