JAVA · 파일/IO
NIO.2 Path와 Files
java.nio.file API로 파일과 디렉토리를 현대적으로 다룹니다.
파일/IO중급NIO.2PathFiles파일
핵심 설명
java.nio.file API로 파일과 디렉토리를 현대적으로 다룹니다.
Java code
import java.nio.file.*;
import java.io.IOException;
import java.util.List;
public class NioPathFiles {
public static void main(String[] args) throws IOException {
// Path 생성
Path path = Path.of("src", "main", "java");
Path home = Path.of(System.getProperty("user.home"));
// Path 조작
System.out.println(path.getFileName()); // java
System.out.println(path.getParent()); // src/main
System.out.println(path.toAbsolutePath());
System.out.println(path.resolve("App.java")); // src/main/java/App.java
System.out.println(path.normalize());
// Files 유틸리티
Path tempFile = Files.createTempFile("test", ".txt");
Files.writeString(tempFile, "Hello NIO.2!");
String content = Files.readString(tempFile);
System.out.println(content);
// 한 줄씩 읽기
List<String> lines = Files.readAllLines(tempFile);
// 파일 정보
System.out.println("크기: " + Files.size(tempFile));
System.out.println("존재: " + Files.exists(tempFile));
System.out.println("읽기가능: " + Files.isReadable(tempFile));
// 디렉토리 순회
// try (var stream = Files.walk(Path.of("."))) {
// stream.filter(Files::isRegularFile)
// .forEach(System.out::println);
// }
Files.deleteIfExists(tempFile);
}
}학습 팁
Files.readString()과 Files.writeString()(Java 11+)은 작은 파일에 가장 간편합니다. 대용량은 BufferedReader를 사용하세요.
주의할 점
Files.walk()는 스트림을 반환하므로 반드시 try-with-resources로 닫아야 합니다. 안 닫으면 파일 핸들 누수가 발생합니다.
자주 묻는 질문
NIO.2 Path와 Files란 무엇인가요?
java.nio.file API로 파일과 디렉토리를 현대적으로 다룹니다.
NIO.2 Path와 Files 학습 시 주의할 점은 무엇인가요?
Files.walk() 는 스트림을 반환하므로 반드시 try-with-resources 로 닫아야 합니다. 안 닫으면 파일 핸들 누수가 발생합니다.
Continue Learning
Java 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.