> Java > java지도 시간 > Java 8의 `Files.walk` 및 `Files.find`를 사용하여 Java에서 파일을 재귀적으로 나열하는 방법은 무엇입니까?

Java 8의 `Files.walk` 및 `Files.find`를 사용하여 Java에서 파일을 재귀적으로 나열하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2025-01-03 06:44:39
원래의
765명이 탐색했습니다.

How to Recursively List Files in Java Using Java 8's `Files.walk` and `Files.find`?

Java 8을 사용하여 Java에서 파일을 재귀적으로 나열하는 방법

소개

재귀적 파일 나열은 다음과 관련된 일반적인 작업입니다. 지정된 경로 내의 모든 파일 목록을 검색하기 위해 디렉터리와 하위 디렉터리를 탐색합니다. Java에는 내장 라이브러리와 타사 라이브러리를 모두 사용하여 이를 달성하는 여러 가지 접근 방식이 있습니다.

Java 8(Files.walk 사용)

Java 8 도입 디렉터리 트리 내의 모든 파일을 나타내는 Path 개체의 스트림을 제공하는 Files.walk 메서드를 통해 파일을 처리하는 강력한 방법입니다. 디렉토리 아래의 모든 일반 파일을 나열하려면 다음 코드를 사용할 수 있습니다.

try (Stream<Path> stream = Files.walk(Paths.get(path))) {
    stream.filter(Files::isRegularFile)
          .forEach(System.out::println);
}
로그인 후 복사

이 접근 방식은 파일 트리를 탐색하고 이름 인쇄 또는 개별 파일에 대한 작업을 수행하는 편리하고 간단한 방법을 제공합니다. 추가 처리를 수행합니다.

Java 8(Files.find 사용)

Java 8에는 필터 조건자를 기반으로 파일을 검색할 수 있는 Files.find 메서드도 도입되었습니다. 재귀적 파일 목록의 경우 필터를 사용하여 일반 파일을 확인할 수 있습니다.

Files.find(Paths.get(path),
           Integer.MAX_VALUE,
           (filePath, fileAttr) -> fileAttr.isRegularFile())
        .forEach(System.out::println);
로그인 후 복사

파일 속성을 기반으로 필터링해야 하는 경우 Files.find가 더 효율적일 수 있지만 성능은 그다지 좋지 않습니다. 단순히 일반 파일을 나열할 때 Files.walk와 Files.find의 차이점.

다른 제품과 비교 접근 방식

Java 8의 스트림 기반 접근 방식은 기존의 재귀적 구현이나 해키 구현에 비해 상당한 이점을 제공합니다. 재귀적 파일 목록을 처리하는 간결하고 표현력 있는 방법을 제공하므로 코드를 더 쉽게 읽고, 유지 관리하고, 확장할 수 있습니다.

위 내용은 Java 8의 `Files.walk` 및 `Files.find`를 사용하여 Java에서 파일을 재귀적으로 나열하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿