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

지정된 디렉토리 경로에서 발견 된 모든 텍스트 파일을 보유하는 디렉토리 스트림이 있습니다. 루프를 사용하지 않고이 스트림의 첫 번째 값을 검색하려면 어떻게해야합니까?루프를 사용하지 않고 DirectoryStream의 첫 번째 값을 얻는 방법

+2

당신은'뜻은 "* .txt 인 "또는 정말로".txt "라는 이름의 유일한 파일을 찾으려고합니까? 후자의 경우'DirectoryPath.resolve (".txt")'와'Files.exists'를 사용해야합니다 ... – Holger

+0

네, "* .txt"를 의미합니다. 오타를 유감으로 여깁니다. – Raskill

답변

1

반환 첫 번째 발견 항목 : 또한 next()를 호출하기 전에, 심지어 적어도 하나 개의 파일이 있는지 확인 할 수 있습니다

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

:

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

감사합니다. – Raskill

관련 문제