2014. 10. 1. 18:28

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();
		}
 
	}
}

'Java' 카테고리의 다른 글

Hotspot JVM GC 방식  (0) 2014.12.09
[모델1] 간단한 로그인 시스템  (0) 2014.11.01
singleton 패턴  (0) 2014.10.01
Heap 영역과 Stack 영역  (0) 2014.09.04
Java Hashtable  (0) 2014.06.16
Posted by 아도니우스