Java I/O 의 확장 기능 - xrath.com 에서 번역됨

# Java I/O 의 확장 기능

목차

- Java SE 6 의 확장 기능
- J2SE 5.0 의 확장 기능
- J2SDK 1.4 의 확장 기능
- 이전의 확장 기능

## Java SE 6 의 확장 기능

### java.io

다음의 새로운 클래스가 1 개 추가되었습니다.

- `Console` - 문자 베이스의 콘솔 디바이스에 액세스 하는 메소드가 포함됩니다. `readPassword()` 메소드는, 메아리를 무효로 하는 것으로부터, 패스워드와 같은 기밀 데이터의 취득에 적절하고 있습니다. `System.console()` 메소드는, Java 가상 머신과 관계가 있는 일의의 콘솔을 돌려줍니다.

다음의 메소드가 `File` 에 추가되었습니다.

- 디스크 사용 정보를 취득하기 위한 메소드：
  - `getTotalSpace()` 는 파티션의 용량을 바이트수로 돌려줍니다
  - `getFreeSpace()` 는 파티션의 빈 용량을 바이트수로 돌려줍니다
  - `getUsableSpace()` 는, 파티션으로 사용 가능한 바이트수를 돌려주는 것 외에 기입 권한과 다른 operating system의 제한에 대해 체크합니다
- 파일에의 액세스권한을 설정 또는 조회하기 위한 메소드：
  - `setWritable(boolean writable, boolean ownerOnly)` 와 `setWritable(boolean writable)` 는 소유자 또는 전원의 기입 권한을 설정합니다
  - `setReadable(boolean readable, boolean ownerOnly)` 와 `setReadable(boolean readable)` 는 소유자 또는 전원의 읽기 권한을 설정합니다
  - `setExecutable(boolean executable, boolean ownerOnly)` 와 `setExecutable(boolean executable)` 는 소유자 또는 전원의 실행 권한한을 설정합니다
  - `canExecute()` 는 실행 권한한의 값을 테스트합니다

다음의 클래스에 생성자 이 추가되었습니다.

- `IOException` 는, 새로운 생성자 `IOException(String, Throwable)` 와 `IOException(Throwable)` 의 추가에 의해, 예외 체인을 지원합니다.

다음의 메소드의 동작이 변경되었습니다.

- CON, NUL, AUX, LPT 등의 예약된 디바이스명에는 반드시 `false` 를 돌려주도록(듯이),`File.isFile()` Windows 구현이 변경되었습니다. 이전의 반환값은 `true` 로, 그것이 Unix 로 사용하는 디바이스의 동작과 정합하고 있지 않는 것으로부터, 대상 사용자는 이것을 버그로 간주하고 있었습니다.

### java.nio

- Linux epoll 이벤트 통지 기능을 베이스로 하는 `java.nio.channels.SelectorProvider` 구현이 새롭게 추가되었습니다. 이 epoll 기능은 Linux 2.6 이후의 커넬로 사용할 수 있습니다. `Selector` 에 다수의 `SelectableChannel` 가 등록되어 있는 경우, 새로운 epoll 베이스의 `SelectorProvider` 구현은, 종래의 poll 베이스의 `SelectorProvider` 구현보다 스케이라불입니다. 새로운 `SelectorProvider` 구현은, 2.6 커넬이 검출되면(자), 디폴트로 사용됩니다. poll 베이스의 `SelectorProvider` 는, 2.6 보다 전의 커넬이 검출되면(자) 사용됩니다.
- 시스템 프로퍼티 `sun.nio.ch.disableSystemWideOverlappingFileLockCheck` 는,`FileChannel` 외 인스턴스에 의해 영역이 락 될까 `java.nio.channels.FileChannel.lock()` 가 체크할지 어떨지를 제어합니다. 이 시스템 프로퍼티이 `true` 로 설정되어 있지 않은 한, 어플리케이션이`FileChannel`의 다른 인스턴스에 의해 락 된 영역과 중복 하는 영역을 잠그려고 하면(자),`FileChannel.lock()` 은 `OverlappingFileLockException` 를 throw 합니다. 시스템 프로퍼티이 존재하는 것은, JVM 전체의 중복 파일 락 체크를 구현하고 있지 않는 이전의 릴리스와의 호환성을 제공하기 (위해)때문에입니다.

## J2SE 5.0 의 확장 기능

### java.nio

- 클래스 `javax.net.ssl.SSLEngine` 가 추가되었습니다. J2SDK v1. 4.0 에서의 기존의 안전한 통신 인프라스트럭쳐(infrastructure)인 `javax.net.ssl.SSLSocket` 는, java.net.Socket. 의 I/O 모델을 베이스로 하고 있습니다. `SSLEngine` 클래스는 I/O 모델을 무시하고 있기 (위해)때문에, 개발자는 대체의 I/O 를 사용해 통신 경로를 보호할 수가 있습니다. `SSLEngine` 는 New I/O API 와 조합해, 안전한 블록 또는 비블록 `SocketChannel` 등의 구현을 작성할 수 있습니다. 상세한 것에 대하여는,「JSSE 레퍼런스 가이드」를 참조해 주세요.

## Java 2 SDK, v1. 4 의 확장 기능

### java.io

- `FileInputStream` 및 `FileOutputStream` 클래스에서는, 기본이 되는 `FileChannel` 객체를 돌려주는 `getChannel` 메소드가 추가되어`close` 메소드는 기본이 되는 채널을 클로즈 하도록(듯이) 개정되었다
- 같이`RandomAccessFile` 클래스에서는,`getChannel` 메소드가 추가되어`close` 메소드는 기본이 되는 채널을 클로즈 하도록(듯이) 개정되었다. `RandomAccessFile` 생성자 이, 모드 문자`「s」`와`「d」`를 지원하게 되어, 파일을 열 때, 동기 기입해 또는 동기 데이터 기입을 지정할 수 있게 되었다
- `InputStreamReader` 및 `OutputStreamWriter` 클래스에서는, 스트림과 `Charset` 객체를 인수에 있는 생성자 이 추가되어`getEncoding` 메소드가, 사용되고 있는 인코딩의 전통명을 돌려주도록(듯이) 개정된 기존의 `CharsetDecoder` 객체를 취하는`InputStreamReader` 의 생성자 과 기존의 `CharsetEncoder` 객체를 취하는 `OutputStreamWriter` 의 생성자 이 추가되었다.

### java.nio

- java.io 패키지의 I/O 기능을 추가하기 위해(때문에), nio 패키지가 추가되었습니다.
- 다이렉트 버퍼를 지원하기 위해서, 새로운 3 개의 함수가 JNI (Java Native Interface)에 추가되었습니다. 자세한 것은,「v1. 4 의 JNI 확장 기능」을 참조해 주세요.

## 이전의 확장 기능

- 「java.io.File 의 기능」 에서는,`java.io.File` 클래스의 변경점에 대해 설명합니다.
- 「다른 변경점」 에서는,`java.io` 패키지의 변경점에 대해 설명합니다.
- 「문자 스트림」은, 문자 스트림을 지원하는 java.io 클래스 패키지의 초기의 변경점에 대해 설명합니다.

Copyright © 2006 Sun Microsystems, Inc. All Rights Reserved. |