본문 바로가기
방통대/Java

[Java] 10-1 java.nio 패키지

by 꿈꾸는 몽나 2024. 4. 26.
728x90

1. java.nio 패키지

: NIO는 'New Input Output의 약자'

-> 기존 java.io 패키지를 개선한 새로운 입출력 패키지

: JDK 7부터는 파일 I/O를 개선한 NIO2도 등장

-> java.nio와 그것의 서브 패키지 형태

*java.nio.file, java.nio.channels, java.nio.charset 등

-> File 클래스보다 다양한 기능을 제공하는 Path

-> Files의 static 메소드를 통한 파일/디렉터리의 조작, 파일의 읽기/쓰기

-> 파일 입력과 파일 출력이 모두 가능한 FileChannel 클래스

*버퍼링 기능, 멀티스레드에 안전

-> 비동기식 파일 입출력을 위한 AsynchronousFileChannel 클래스

*non-blocking 방식 파일 입출력

 

 

 

 

2. Path 인터페이스

: java.nio.file 패키지에 존재하며 java.io.File 클래스를 대신함

: 파일시스템에 존재하는 파일이나 디렉터리에 해당하는 경로를 표현

*절대 경로 또는 상대 경로로 표현됨

: 경로의 생성, 경로의 비교, 경로 정보 추출, 경로 요소 조작 기능 등을 제공

: java.nio.file.Files 클래스의 static 메소드를 이용해 Path 객체에 대한 다양한 실제 조작(생성, 읽기, 쓰기, 복사, 이동 등)이 가능함

: Path 객체의 생성 방법

*Path p = Pathes.get("C:\\tmp\\foo");

*파일이나 디렉터리의 절대 또는 상대 경로를 명시해야 함

 

 

 

3. Path 인터페이스의 메소드

 

 

 

 

4. Path 인터페이스의 사용 예

 

 

 

 

5. FileSystem 클래스와 FileStore 클래스

-FileSystem 클래스의 메소드

:FileSystem은 파일 시스템에 대한 인터페이스를 제공

*FileSystems.getDefault()은 기본 파일 시스템을 리턴함

:Iterable <FileStore> getFileStores()

*하나 이상의 파일 스토어로 구성됨

: WatchService newWatchService()

 

-FileStore 클래스의 메소드

: FileStore는 저장소(파티션 또는 볼륨)를 표현함

: String name(), String type()

: long getTotalSpace(),

: long getUnallocatedSpace(), long getUsableSpace()

 

 

 

 

6. FileSystem과 FileStore 클래스의 사용 예

 

 

 

 

7. Files 클래스

: 파일 조작 기능을 제공하는 static 메소드를 제공함

*메소드는 Path 객체를 인자로 가지고 작업함

 

: 파일의 읽기와 쓰기 메소드

*byte[] readAllBytes(Path), Path write(Path, byte[])

 

: 파일이나 디렉터리의 검사/생성/삭제/복사/이동/속성관리 메소드

 

 

 

 

8. Files 클래스의 사용 예

728x90