ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [NIO.2]Files Class
    JAVA/NIO2 2013. 11. 20. 17:50
    728x90

    Files Class는 java.nio.file package에서 가장 중요한 Class 이다.

    이 Class는 파일과 디렉토리에 대한 읽고, 쓰고, 조정에 대한 static Method들을 제공한다.


    Files Method는 Path Object와 함께 사용 됩니다.

    다음 주요 내용을 확인 해 보자.


    1. 시스템 자원 해제 및 예외상황 처리

    2. 인자들에 대한 정보

    3. 원자적인 활동

    4. 메소드 연결

    5. Glob 

    6. Link 인식



    1. 시스템 자원 해제 및 예외 상황 처리

    java.io.Colseable Interface를 상속 받거나, 구현하여 자원에 대한 해제를 아래와 같이 처리 한다.

    Charset charset = Charset.forName("US-ASCII");
    String s = ...;
    try (BufferedWriter writer = Files.newBufferedWriter(file, charset)) {
        writer.write(s, 0, s.length());
    } catch (IOException x) {
        System.err.format("IOException: %s%n", x);
    }
    


    2. 인자들에 대한 정보

    몇몇 Files Method는 인자의 갯수가 동적이다. 예를 들면, 

    Path Files.move(Path, Path, CopyOption...)
    

    과 같이 CopyOption을 배열로 처리 한다.

    사용 법은 다음과 같다

    import static java.nio.file.StandardCopyOption.*;
    
    Path source = ...;
    Path target = ...;
    Files.move(source,
               target,
               REPLACE_EXISTING,
               ATOMIC_MOVE);
    


    3. 원자적인 활동

    여러 파일이 이동, 삭제 등의 원자적 특정 작업을 수행 할 수 있습니다.

    단 시스템에 문제를 주거나 다른 프로세스와 관계가 없는 원자적인 파일에 대해서만 가능 합니다.


    4. 메소드 체인

    다음과 같은 메소드 체인 방식을 제공 합니다.

    String value = Charset.defaultCharset().decode(buf).toString();
    UserPrincipal group =
        file.getFileSystem().getUserPrincipalLookupService().
             lookupPrincipalByName("me");
    


    5. Glob

    구문(파일명, 디렉토리명)에 대한 패턴 동작 

    Glob 구문은 몇가지 간단한 룰을 따른다.

    • * : 모든 숫자나 문자
    • ** : *와 같은 동작은 한다. 그러나, 디렉토리의 경계를 교차한다. 이 구문은 일잔적으로 완전한 경로와 일치 하는데 사용된다.
    • ? : 한개의 글자와 일치 한다.
    • {...} : 리스트와 일치 하는 것을 찾는다.
      예) {sun, moon, stars} : "sun", "moon", "stars" 
           {temp*, temp*} : "tempadsf", "tmpddd"
    • [A-Z] : 문자의 범위를 지정한다. *,?,\ 을 함께 사용 가능
      예) [aeiou] : 모든 소문자 모음
           [0-9] : 모든 숫자
           [A-Z] 모든 대문자
           [a-z,A-Z] 모든 영문자
    • 마지막으로 *,? 등의 특별한 문자의 패턴을 이용 하려면 \를 이용하면된다.
      예) \\ : \(문자)
           \? : ?(문자)

     6. LINK 인식

    Files class는 Link 를 인식한다. 모든 Files method는 심볼릭 link나, 그 심볼 링크를 발견 할때 동작을 구성 할 수 있도록 옵션 제공을 한다.


    참조 : http://docs.oracle.com/javase/tutorial/essential/io/fileOps.html


    728x90

    'JAVA > NIO2' 카테고리의 다른 글

    [NIO.2]Copying a File or Directory  (0) 2013.11.25
    [NIO.2]Deleting a File or Directory  (0) 2013.11.25
    [NIO.2]Checking a File or Directory  (0) 2013.11.25
    [NIO.2]The Path Class  (0) 2013.11.13
    [JAVA.7]NIO2 노트 시작 합니다.  (0) 2013.11.12
Designed by Tistory.