HOWTO · Java

Java에서 폴더의 모든 파일을 읽는 방법

이 게시물은 Java에서 폴더의 모든 파일을 읽습니다.

이 페이지의 내용

이 튜토리얼에서는 Java에서 폴더의 모든 파일을 읽는 방법을 소개하고이를 이해하기위한 몇 가지 예제 코드를 나열합니다.

폴더의 모든 파일을 가져 오는 방법에는 여러 가지가 있습니다. 여기서 우리는File,Files,DirectoryStream 클래스 등을 사용할 수 있습니다. 예를 봅시다.

Java에서 폴더의 모든 파일을 읽는 방법

여기서는File 클래스를 사용하여 소스 디렉토리에있는 모든 파일과 폴더를 수집 한 다음 isDirectory()메서드를 사용하여 파일인지 폴더인지 확인합니다. 아래 예를 참조하십시오.

import java.io.File;
import java.text.ParseException;
public class SimpleTesting {
  public static void findAllFilesInFolder(File folder) {
    for (File file : folder.listFiles()) {
      if (!file.isDirectory()) {
        System.out.println(file.getName());
      } else {
        findAllFilesInFolder(file);
      }
    }
  }
  public static void main(String[] args) throws ParseException {
    File folder = new File("/home/folder/src");
    findAllFilesInFolder(folder);
  }
}

Java에서Files 클래스를 사용하여 폴더의 모든 파일 읽기

스트림을 사용하려면Path스트림을 반환하는Files 클래스의walk()메서드를 사용하세요. 그런 다음filter()메서드를 사용하여 파일 만 수집하고forEach()를 사용하여 인쇄합니다.

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;
public class SimpleTesting {
  public static void main(String[] args) throws IOException {
    try (Stream<Path> paths = Files.walk(Paths.get("/home/folder/src"))) {
      paths.filter(Files::isRegularFile).forEach(System.out::println);
    }
  }
}

Java에서newDirectoryStream()메서드를 사용하여 폴더의 모든 파일 읽기

여기서는Files 클래스와Path 스트림을 반환하는newDirectoryStream()메서드를 사용합니다. 그런 다음for-each 루프를 사용하여 파일 목록을 반복하고 파일 이름을 인쇄합니다.

import java.io.IOException;
import java.nio.file.DirectoryIteratorException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class SimpleTesting {
  public static void main(String[] args) throws IOException {
    try (DirectoryStream<Path> stream = Files.newDirectoryStream(Paths.get("/home/folder/src/"))) {
      for (Path file : stream) {
        System.out.println(file.getFileName());
      }
    } catch (IOException | DirectoryIteratorException ex) {
      System.err.println(ex);
    }
  }
}

Java에서walkFileTree()메소드를 사용하여 폴더의 모든 파일 읽기

여기서는 소스 폴더와 SimpleFileVisitor참조라는 두 개의 인수를받는Files 클래스의walkFileTree()메서드를 사용합니다. 아래 예를 참조하십시오.

import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
public class SimpleTesting {
  public static void main(String[] args) throws IOException {
    SimpleFileVisitor<Path> file = new SimpleFileVisitor<Path>() {
      @Override
      public FileVisitResult visitFile(Path filePath, BasicFileAttributes attrs)
          throws IOException {
        System.out.println(filePath);
        return FileVisitResult.CONTINUE;
      }
    };
    Files.walkFileTree(Paths.get("/home/folder/src"), file);
  }
}