2017-01-31 1 views
1
DirectoryStream<Path> stream = Files.newDirectoryStream(DirectoryPath, ".txt"); 

Ich habe einen Verzeichnis-Stream, der alle Textdateien im angegebenen Verzeichnispfad enthält. Wie kann ich den ersten Wert dieses Streams abrufen, ohne eine Schleife zu verwenden?Wie bekomme ich den ersten Wert eines DirectoryStream ohne Verwendung einer Schleife

+2

Meinten Sie '" * .txt "' oder wollen Sie wirklich nur nach der einzigen Datei '' .txt "' suchen? Im letzteren Fall sollten Sie 'DirectoryPath.resolve (". Txt ")' und 'Files.exists' verwenden ... – Holger

+0

ja, ich meinte" * .txt ", sorry für den Tippfehler – Raskill

Antwort

1

Rückkehr nur der erste gefundene Eintrag:

Files.newDirectoryStream(DirectoryPath, ".txt").iterator().next() 

Sie auch prüfen möchten, ob es noch mindestens eine Datei ist next() vor dem Aufruf:

Iterator<Path> textFileIterator = Files.newDirectoryStream(DirectoryPath, ".txt").iterator(); 
if (textFileIterator.hasNext()) { 
    Path firstFoundTextFile = textFileIterator.next(); 
} 
+0

Danke, das hat mir sehr geholfen! – Raskill

Verwandte Themen