[java] 자바 파일 시스템에서 파일 검색하기
자바 프로그램에서 파일 시스템에서 파일을 검색해야 할 때가 있습니다. 이를 위해 java.nio.file
패키지의 Files
및 Paths
클래스를 사용하여 파일을 검색할 수 있습니다.
1. 특정 디렉토리에서 파일 검색
특정 디렉토리에서 특정 확장자를 가진 파일을 검색하는 방법은 다음과 같습니다.
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;
import java.io.IOException;
public class FileSearch {
public static void main(String[] args) throws IOException {
Path dir = Paths.get("C:\\example\\directory");
String fileExtension = ".txt";
try (Stream<Path> paths = Files.walk(dir)) {
paths.filter(Files::isRegularFile)
.filter(p -> p.getFileName().toString().endsWith(fileExtension))
.forEach(System.out::println);
}
}
}
위의 예제에서는 Files.walk()
를 사용하여 지정된 디렉토리 아래의 모든 파일을 방문하고, 각 파일을 필터링하여 원하는 확장자를 가진 파일을 찾습니다.
2. 디렉토리의 모든 파일 검색
특정 디렉토리의 모든 파일을 검색하는 방법은 다음과 같습니다.
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.IOException;
public class FileSearchAll {
public static void main(String[] args) throws IOException {
Path dir = Paths.get("C:\\example\\directory");
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) {
for (Path file : stream) {
System.out.println(file.getFileName());
}
}
}
}
위의 예제에서는 Files.newDirectoryStream()
을 사용하여 지정된 디렉토리의 모든 파일을 반복하여 찾습니다.
파일 검색은 자바 프로그램에서 일반적인 작업이므로 java.nio.file
패키지의 다양한 기능을 활용하여 파일을 효과적으로 검색할 수 있습니다.
더 자세한 내용은 Oracle Java Documentation를 참고하시기 바랍니다.