Files 클래스에는 Java 8에서 추가된 find라는 메소드가 있다.
Funtional Programmin in Java 8 책의 3장에 ListSubDir.java 예제가 있는데, 해당 디렉토리의 하부 디렉토리까지만 가져오므로 완전한 예가 아니다.
find를 이용해서 어떤 디렉토리에 존재하는 모든 파일을 가져오도록 Stream API를 이용하여 작성해 보자.
Path start = Paths.get(".");
int maxDepth = 5; // Integer.MAX_VALUE로 하면 모든 파일을 가져올 수 있다
Files.find(start, maxDepth, (path, attr) -> true)
.forEach(System.out::println);
만약 어떤 특정 파일 속성을 가지는 파일만 가져오고 싶다면 find의 3번째 인자를 수정하면 된다.
예를 들어 .java파일만 찾고 싶다면
(path, attr) -> path.toString().endsWith(".java")
이렇게 바꿔주면 된다.
반응형
'Tips > Java' 카테고리의 다른 글
Lambda를 이용한 Lazy Initialization (0) | 2016.09.02 |
---|---|
JUnit Test 클래스를 main함수로 실행하기 (0) | 2015.01.05 |
[JAVA] 문자열 내에서 숫자만 분리하기 (0) | 2014.05.09 |
[JAVA] Regular Expression (정규 표현식) 예제 (0) | 2013.03.16 |
[JAVA] 정규표현식 - URL (0) | 2013.03.15 |