Path클래스는 자바7에 있는 새로운 기능이면 NIO2에서 가장 널리 사용하는 클래스라고 합니다.

저도 처음 접하는거라 간단하게 API에 있는 기능 사용법만 샘플로 만들어봤습니다.


클래스 이름 그대로 경로를 조작하는데 있어서 강력한 기능을 제공합니다.

기존에는 경로를 조작하는데 있어서 File클래스를 사용하였으나 Path클래스로 대체해서 사용하면

참 좋을 것 같습니다.


다음은  샘플 소스입니다.


[샘플 소스]

import java.io.File;
import java.io.IOException;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
 
 
public class TestPath {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
 
		Path path = Paths.get("D:/test/Hellow.txt");
		// 경로 루트
		System.out.printf("Root   : %s \n" , path.getRoot());
		// 경로의 부모
		System.out.printf("Parent : %s \n", path.getParent());
		// 경로의 요소
		for (int i = 0; i < path.getNameCount(); i++) {
			System.out.printf("getNameCount %d : %s \n"  ,i, path.getName(i));	
		}
		// 서브경로
		System.out.printf("subu path : %s \n", path.subpath(0, path.getNameCount()));
		System.out.println();
 
		try {
			// 경로를 실제 경로로 변환
			// path가 실제로 존재하지 않으면 에러가 발생
			Path real_path = path.toRealPath(LinkOption.NOFOLLOW_LINKS);
			System.out.println(real_path);
 
			// 경로를 파일로 변환
			File path_to_file = path.toFile();
 
			// 파일에서 path추출
			Path file_to_path = path_to_file.toPath();
 
			// 파일에서 파일 이름
			System.out.printf("Path to file name : %s \n" , path_to_file.getName());
			// 파일에서 추출한 path에서의 경로
			System.out.printf("File to path      : %s \n" , file_to_path.toString());
 
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
 
	}
}


[실행 결과]

pathSample.PNG


설명은 커맨트를 참조해주세요. ^^;

Path클래스는 1.7버전부터 추가된 기능이기 때문에 1.5나 1.6버전에는 없습니다.


감사합니다.