[Java] Paths 사용법 (get, getFileName, getParent, toAbsolutePath)
2024. 6. 19. 21:25ㆍWebBack/Java
Class Paths란?
Paths 클래스는 파일 시스템의 경로를 다루는 데 사용되는 유틸리티 클래스이다.
메서드 요약
public static Path get(String first, String... more) {
return Path.of(first, more);
}
public static Path get(URI uri) {
return Path.of(uri);
}
Paths get 메서드는 단일 문자열, 여러 문자열, URI을 인자로 받아 Path 객체로 변환하는 기능을 제공한다.
Path.of(first, more)을 통해서 여러 문자열을 입력해도 하나의 문자열로 결합되는 것을 주의하자.
그래서 다음과 같은 코드도 가능하다.
Path path = Paths.get("myfolder", "mysubfolder", "myfile.txt");
위 코드는 myfolder/mysubfolder/myfile.txt라는 경로를 Path 객체로 변환된다.
메서드 사용법
Paths get은 다음과 같은 상황에 쓰인다.
파일 경로를 조회한다.
import java.nio.file.Path;
import java.nio.file.Paths;
public class PathsExample {
public static void main(String[] args) {
// 파일 경로 생성
Path pathToFile = Path.of("example.txt");
// 디렉토리 경로 생성
Path pathToDirectory = Path.of("my_directory");
// 상대 경로 생성
Path relativePath = Path.of("some/relative/path");
// 절대 경로 생성
Path absolutePath = Path.of("/home/user/documents");
// 경로 정보 조회
System.out.println("파일 이름: " + pathToFile.getFileName());
System.out.println("부모 디렉토리: " + pathToFile.getParent());
// 절대 경로 변환
Path absolutePath = pathToFile.toAbsolutePath();
System.out.println("절대 경로: " + absolutePath);
}
}
getFileName()은 파일 이름을, getParent()는 부모 디렉터리를 확인하는 메서드이다. Path.toAbsolutePath()는 상대 경로를 절대 경로로 전환한다.
여기서 주의할 점은 경로를 생성하는 것이지 파일이나 디렉터리를 생성하는 것이 아니다!! 만약, 파일을 실제 생성하고 싶다면 Files.createFile(Path path) 혹은 (Path dir)을 사용해야 한다.
Files.createFile(Path path) 사용 예시
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.Files;
import java.io.IOException;
public class CreateFileExample {
public static void main(String[] args) {
// 경로 생성
Path pathToFile = Paths.get("newfile.txt");
try {
// 파일 생성
Files.createFile(pathToFile);
System.out.println("파일이 생성되었습니다.");
} catch (IOException e) {
System.err.println("파일 생성 중 오류가 발생했습니다: " + e.getMessage());
}
}
}
'WebBack > Java' 카테고리의 다른 글
[Java] LocalDate.getMonth, getMonthValue (0) | 2024.06.25 |
---|---|
[Java] LocalDate.parse 메서드 사용법 (0) | 2024.06.19 |
[Java] DateTimeFormatter.ofPattern 사용법 (0) | 2024.06.19 |
[Java] Files.readAllLines 사용법 (0) | 2024.06.19 |
[Java] 스레드(thread) - run, start, I/O블락킹, setPriority (0) | 2024.06.18 |