본문 바로가기

백앤드/Java

[JAVA] Path 클래스로 경로 리턴받기

반응형

 

개발을 하다보면 간혹 String 으로 된 경로를 받지않고 Path Class로 파라미터를 전달받는 경우가 있다.

 

 전 처음 Path Class로 파라미터를 넣으라하길래, 정말 아무 생각없이 new Path()를 타이핑하고....

Ctrl + Space도 해보고 이런저런 많은 것을 해보다가 인터넷을 찾게 되었는데 !

 

Path path = Paths.get("D:\\sample\\sample_doc.txt"); 

이런 코드가 있네요! 그런데 얼추 비슷하게 접근했네요 역시 개발자들이란.... 다 똑같은 생각하고 있는듯해요 : )

 

 

아참 그리고 가장 중요한 개념설명을 빠뜨렸네요.

 

1. Path Class를 사용하는 FileNIO ?

보통 File에 접근한다고하면 FileIO를 많이 떠올릴겁니다. 여기서 사용하는 FileNIO는 무엇인가? 아래 표로 간략하게 정리해보았습니다.

 

 

 구분

File IO 

File NIO 

 I/O 방식

 File Stream

 File Channel 

 Buffer 방식 

 Non - Buffer 

 Buffer

 Asynchronous (비동기방식)

 지원 X

 지원 O

 Blocking

 Only Blocking 지원

 Blocking / Non-Blocking 지원

 

 

 

2. Example source

import java.nio.file.Path;
import java.nio.file.Paths;

public class PathExam {

	public static void main(String[] args) {
		// 특정 경로의 파일 정보를 가져온다. (Uri | String) 
		Path path = Paths.get("D:\\sample\\sample_doc.txt"); 
		// 전체 경로  
		System.out.println("전체 경로: "+ path);   
		// 파일명     
		System.out.println("파일명: "+path.getFileName());  
		// 부모 확인    
		System.out.println("부모 확인: "+path.getParent().getFileName());    
		// 루트 확인     
		System.out.println("루트 확인: "+path.getRoot());   
		// 경로 단계 수      
		System.out.println("경로 단계 수: "+path.getNameCount()); 
		// 개별 단계 확인     
		for(int i=0; i<path.getNameCount(); i++) {    
			System.out.println((i+1)+"단계: "+path.getName(i));  
		}
	}
    
}

 

이렇게 사용하면 이제 어떻게 결과는 아래처럼 나오게 됩니다.

 

 

 

반응형