[java] 자바 파일 시스템에서 파일 검색하기

자바 프로그램에서 파일 시스템에서 파일을 검색해야 할 때가 있습니다. 이를 위해 java.nio.file 패키지의 FilesPaths 클래스를 사용하여 파일을 검색할 수 있습니다.

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를 참고하시기 바랍니다.