RandomAccessFile (Java Platform SE 6) - xrath.com 에서 번역됨

개요 | 패키지 | 클래스 | 사용 | 계층 트리 | 비추천 API | 색인 | 헬프

JavaTM Platform
Standard Ed. 6

앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드

## java.io
클래스 RandomAccessFile

    java.lang.Object
      java.io.RandomAccessFile

모든 구현된 인터페이스:
  Closeable , DataInput , DataOutput

    public class RandomAccessFile

extends Object
implements DataOutput , DataInput , Closeable

이 클래스의 인스턴스는, 랜덤 억세스 파일에 대한 읽기와 기입의 양쪽 모두를 지원합니다. 랜덤 억세스 파일의 동작은, 파일 시스템에 포함된 대규모 바이트 배열의 동작을 닮아 있습니다. 또, 파일 포인터로 불리는 어떤 종류의 커서, 즉 암시 배열내에의 인덱스가 있어, 입력 조작에서는 파일 포인터의 위치에서 바이트의 읽기를 개시해, 읽어낸 바이트를 넘어 파일 포인터를 진행시킵니다. 랜덤 억세스 파일이 읽어내/기입 모드로 생성되었을 경우, 출력 조작도 이용 가능하게 됩니다. 출력 조작에서는, 파일 포인터의 위치에서 바이트의 기입을 개시해, 기입해진 바이트를 넘어 파일 포인터를 진행시킵니다. 현재의 암묵의 배열의 마지막을 넘는 출력 조작에서는, 배열의 확장이 발생합니다. 파일 포인터는 `getFilePointer` 메소드에 의해 읽어낼 수가 있어`seek` 메소드에 의해 설정할 수 있습니다.

필요한 바이트수를 읽어내기 전에 end-of-file 에 도달했을 경우,`IOException` 의 일종인 `EOFException` 가 throw 됩니다만, 이것은 이 클래스의 모든 읽기 루틴에 들어맞읍니다. end-of-file 이외의 하등의 이유에 의해 바이트를 읽어낼 수가 없는 경우,`EOFException` 이외의 `IOException` 가 throw 됩니다. 특히, 스트림이 닫혀졌을 경우는,`IOException` 가 throw 될 가능성이 있습니다.

도입된 버젼:
  JDK1. 0

생성자 의 개요
`RandomAccessFile (File file, String mode)` `File` 인수로 지정된 파일로부터의 읽어들여, 및 옵션으로 기입을 행하기 위한 랜덤 억세스 파일 스트림을 작성합니다.
`RandomAccessFile (String name, String mode)` 지정된 이름의 파일로부터의 읽어들여, 및 옵션으로 기입을 행하기 위한 랜덤 억세스 파일 스트림을 작성합니다.

메소드의 개요
`void` | `close ()` 이 랜덤 억세스 파일 스트림을 닫아, 스트림에 관련지을 수 있었던 system resource를 해제합니다.
`FileChannel` | `getChannel ()` 이 파일에 관련지을 수 있던, 일의 `FileChannel` 객체를 돌려줍니다.
`FileDescriptor` | `getFD ()` 이 스트림에 관련하는 불투명한 파일 기술자를 돌려줍니다.
`long` | `getFilePointer ()` 이 파일의 현재의 오프셋(offset)를 돌려줍니다.
`long` | `length ()` 이 파일의 길이를 돌려줍니다.
`int` | `read ()` 이 파일로부터 데이터의 바이트를 읽어냅니다.
`int` | `read (byte[] b)` 이 파일로부터 최대 `b.length` 바이트의 데이터를 바이트의 배열안에 읽어냅니다.
`int` | `read (byte[] b, int off, int len)` 이 파일로부터 최대 `len` 바이트의 데이터를 바이트의 배열안에 읽어냅니다.
`boolean` | `readBoolean ()` 이 파일로부터 `boolean` 를 읽어냅니다.
`byte` | `readByte ()` 이 파일로부터 서명 첨부 8 비트치를 읽어냅니다.
`char` | `readChar ()` 이 파일로부터 문자를 읽어냅니다.
`double` | `readDouble ()` 이 파일로부터 `double` 를 읽어냅니다.
`float` | `readFloat ()` 이 파일로부터 `float` 를 읽어냅니다.
`void` | `readFully (byte[] b)` 현재의 파일 포인터의 위치로부터 개시해 `b.length` 바이트를 이 파일로부터 바이트 배열안에 읽어냅니다.
`void` | `readFully (byte[] b, int off, int len)` 현재의 파일 포인터의 위치로부터 개시해 정확하게 `len` 바이트를 이 파일로부터 바이트 배열안에 읽어냅니다.
`int` | `readInt ()` 이 파일로부터 서명 첨부 32 비트 정수 문자를 읽어냅니다.
`String` | `readLine ()` 이 파일의 텍스트의 다음의 행을 읽어냅니다.
`long` | `readLong ()` 이 파일로부터 서명 첨부 64 비트 정수 문자를 읽어냅니다.
`short` | `readShort ()` 이 파일로부터 서명 첨부 16 비트수를 읽어냅니다.
`int` | `readUnsignedByte ()` 이 파일로부터 부호 없음 8 비트수를 읽어냅니다.
`int` | `readUnsignedShort ()` 이 파일로부터 부호 없음 16 비트수를 읽어냅니다.
`String` | `readUTF ()` 이 파일로부터 캐릭터 라인을 읽어냅니다.
`void` | `seek (long pos)` 다음의 읽어내 또는 기입이 발생하는, 파일의 선두로부터 측정한 파일 포인터 오프셋(offset)를 설정합니다.
`void` | `setLength (long newLength)` 이 파일의 길이를 설정합니다.
`int` | `skipBytes (int n)` 입력의 `n` 바이트를 스킵 해, 스킵 한 바이트를 파기하려고 합니다.
`void` | `write (byte[] b)` 현재의 파일 포인터의 위치로부터 개시해, 지정된 바이트 배열로부터 `b.length` 바이트를 이 파일에 기입합니다.
`void` | `write (byte[] b, int off, int len)` 오프셋(offset) `off` 의 위치로부터 개시해, 지정된 바이트 배열로부터 `len` 바이트를 이 파일에 기입합니다.
`void` | `write (int b)` 이 파일로 지정된 바이트를 기입합니다.
`void` | `writeBoolean (boolean v)` 1 바이트치로서 `boolean` 를 파일에 기입합니다.
`void` | `writeByte (int v)` `byte` 를 1 바이트치로서 이 파일에 기입합니다.
`void` | `writeBytes (String s)` 캐릭터 라인을 바이트의 순서로서 파일에 기입합니다.
`void` | `writeChar (int v)` `char` 를 2 바이트치로서 고위 바이트를 먼저 파일에 기입합니다.
`void` | `writeChars (String s)` 캐릭터 라인을 문자의 순서로서 파일에 기입합니다.
`void` | `writeDouble (double v)` `Double` 클래스의 `doubleToLongBits` 메소드를 사용해, double 인수를 `long` 로 변환합니다.
`void` | `writeFloat (float v)` `Float` 클래스의 `floatToIntBits` 메소드를 사용해, float 인수를 `int` 로 변환합니다.
`void` | `writeInt (int v)` `int` 를 4 바이트로서 고위 바이트를 먼저 파일에 기입합니다.
`void` | `writeLong (long v)` `long` 를 8 바이트로서 고위 바이트를 먼저 파일에 기입합니다.
`void` | `writeShort (int v)` `short` 를 2 바이트치로서 고위 바이트를 먼저 파일에 기입합니다.
`void` | `writeUTF (String str)` 수정 UTF-8 인코딩을 사용해, 머신에 의존하는 방식으로 캐릭터 라인을 파일에 기입합니다.

클래스 java.lang. Object 로부터 상속된 메소드
`clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait`

생성자 의 상세

### RandomAccessFile

    public RandomAccessFile(String  name,
                            String  mode)
                     throws FileNotFoundException

  지정된 이름의 파일로부터의 읽어들여, 및 옵션으로 기입을 행하기 위한 랜덤 억세스 파일 스트림을 작성합니다. 파일에의 접속을 나타내는 `FileDescriptor` 객체가 새롭게 작성됩니다.

  `mode` 인수에는, 파일을 열 때의 액세스 모드를 지정합니다. 지정할 수 있는 값과 그러한 의미는,`RandomAccessFile(File, String)` 생성자 의 지정과 같습니다.

  시큐리티 매니저가 존재하는 경우는, 파일의 읽기 액세스가 허가될지 어떨지를 확인하기 위해서,`name` 를 인수로서 `checkRead` 메소드가 불려 갑니다. 또, 기입을 허가하는 모드의 경우는, 파일에의 기입해 액세스가 허가되고 있는지 어떤지를 확인하기 위해서,`name` 를 인수로서 시큐리티 매니저의 `checkWrite` 메소드가 불려 갑니다.

  파라미터:
    `name` - 시스템에 의존하는 파일명
    `mode` - 액세스모드
  예외:
    `IllegalArgumentException` - mode 인수가 `"r"`,`"rw"`,`"rws"`, 또는 `"rwd"` 가 아닌 경우
    `FileNotFoundException` - 모드가 `"r"` 이지만, 지정된 캐릭터 라인이 기존의 일반적으로 파일을 나타내지 않는 경우, 모드가 `"rw"` 로 시작되지만, 지정된 캐릭터 라인이 기존의 기입해 가능한 일반적으로 파일을 나타내지 않고, 그 이름의 일반적으로 파일을 새롭게 작성할 수 없는 경우, 파일의 오픈 또는 작성중에 그 외의 에러가 발생했을 경우
    `SecurityException` - 시큐리티 매니저가 존재해,`checkRead` 메소드가 파일의 읽기 액세스를 거부했을 경우, 또는 모드가 "rw" 로 시큐리티 매니저의 `checkWrite` 메소드가 파일에의 기입해 액세스를 거부했을 경우
  관련 항목:
    `SecurityException` , `SecurityManager.checkRead(java.lang.String)` , `SecurityManager.checkWrite(java.lang.String)`

### RandomAccessFile

    public RandomAccessFile(File  file,
                            String  mode)
                     throws FileNotFoundException

  `File` 인수로 지정된 파일로부터의 읽어들여, 및 옵션으로 기입을 행하기 위한 랜덤 억세스 파일 스트림을 작성합니다. 이 파일 접속을 나타내는 `FileDescriptor` 객체가 새롭게 작성됩니다.

  `mode` 인수에는, 파일을 열 때의 액세스 모드를 지정합니다. 지정할 수 있는 값과 그 의미를 다음에 나타냅니다.

  > 값 | 의미
  > --- | ---
  > `"r"` | 읽기 전용으로 열립니다. 연 객체의 임의의 `write` 메소드를 호출하면(자),`IOException` 가 throw 됩니다.
  > `"rw"` | 읽기 및 기입해용으로 엽니다. 파일이 존재하지 않는 경우는, 그 작성이 시도됩니다.
  > `"rws"` | `"rw"` 와 같게, read 및 기입해용으로 엽니다. 파일의 내용 또는 메타데이타를 갱신했을 때는, 기본이 되는 기억장치에도 동시에 기입할 필요가 있습니다.
  > `"rwd"` | `"rw"` 와 같게, read 및 기입해용으로 엽니다. 파일의 내용을 갱신했을 때는, 바탕으로 되는 기억장치에도 동시에 적용할 필요가 있습니다.

  `"rws"` 모드 및 `"rwd"` 모드의 동작은,`FileChannel` 클래스의 `force(boolean)` 메소드에 각각 `true` 및 `false` 의 인수를 건네주었을 경우를 닮아 있습니다. 다만, 이러한 모드는 모든 입출력 처리에 적용되기 (위해)때문에, 보다 효율적입니다. 파일이 로컬 기억장치에 있는 경우는, 이 클래스의 메소드를 호출했을 때에, 이 호출에 의해 파일에 적용된 변경이, 그 기억장치에도 항상 기입해집니다. 이 방법에 의해, 시스템이 크래쉬 했을 때, 중요한 정보를 손실로부터 보호할 수 있습니다. 한편, 파일이 로컬의 기억장치상에 없는 경우, 기입은 행해지지 않습니다.

  `"rwd"` 모드는, 실행되는 입출력 처리의 수를 줄이기 위해서(때문에) 사용할 수 있습니다. `"rwd"` 를 사용했을 경우는, 파일의 내용에의 갱신만이 기억장치에 기입해집니다. `"rws"` 를 사용했을 경우는, 파일의 내용과 메타데이타의 양쪽 모두에의 갱신을 기입할 필요가 있습니다. 이것에는, 일반적으로 하위 레벨의 입출력 처리가 1 회 이상 많이 필요합니다.

  시큐리티 매니저가 존재하는 경우는, 파일의 읽기 액세스가 허가될지 어떨지를 확인하기 위해서,`file` 를 경로명의 인수로서 `checkRead` 메소드가 불려 갑니다. 또, 기입을 허가하는 모드의 경우는, 파일에의 기입해 액세스가 허가되고 있는지 어떤지를 확인하기 위해서, 패스를 인수로서 시큐리티 매니저의 `checkWrite` 메소드가 불려 갑니다.

  파라미터:
    `file` - 파일 객체
    `mode` - 액세스 모드. 전술의 설명을 참조
  예외:
    `IllegalArgumentException` - mode 인수가 `"r"`,`"rw"`,`"rws"`, 또는 `"rwd"` 가 아닌 경우
    `FileNotFoundException` - 모드가 `"r"` 이지만, 지정된 파일 객체가 기존의 일반적으로 파일을 나타내지 않는 경우, 모드가 `"rw"` 로 시작되지만, 지정된 파일 객체가 기존의 기입해 가능한 일반적으로 파일을 나타내지 않고, 그 이름의 일반적으로 파일을 새롭게 작성할 수 없는 경우, 파일의 오픈 또는 작성중에 그 외의 에러가 발생했을 경우
    `SecurityException` - 시큐리티 매니저가 존재해,`checkRead` 메소드가 파일의 읽기 액세스를 거부했을 경우, 또는 모드가 "rw" 로 시큐리티 매니저의 `checkWrite` 메소드가 파일에의 기입해 액세스를 거부했을 경우
  관련 항목:
    `SecurityManager.checkRead(java.lang.String)` , `SecurityManager.checkWrite(java.lang.String)` , `FileChannel.force(boolean)`

메소드의 상세

### getFD

    public final FileDescriptor  getFD()
                               throws IOException

  이 스트림에 관련하는 불투명한 파일 기술자를 돌려줍니다.

  반환값:
    이 스트림에 관련하는 파일 기술자 객체
  예외:
    `IOException` - 입출력 에러가 발생했을 경우
  관련 항목:
    `FileDescriptor`

### getChannel

    public final FileChannel  getChannel()

  이 파일에 관련지을 수 있던, 일의 `FileChannel` 객체를 돌려줍니다.

  반환된 채널의 `java.nio.channels.FileChannel#position()`position`` 의 초기치는,`getFilePointer` 메소드에 의해 반환되는 이 객체의 파일 포인터 오프셋(offset)와 항상 동일해집니다. 이 객체의 파일 포인터 오프셋(offset)를 명시적으로 또는 바이트의 읽고 쓰기에 의해 변경하면(자), 채널의 위치도 변경됩니다. 그 역의 경우도 같습니다. 이 객체를 통해서 파일의 길이를 변경하면(자), 파일 채널을 통해서 보이는 길이도 변경됩니다. 그 역의 경우도 같습니다.

  반환값:
    이 파일과 관련지을 수 있었던 파일 채널
  도입된 버젼:
    1.4

### read

    public int read()
             throws IOException

  이 파일로부터 데이터의 바이트를 읽어냅니다. 바이트는, 0 ~ 255 (`0x00-0x0ff`)의 범위의 정수로서 돌려주어집니다. 입력이 아직 이용할 수 없는 경우, 이 메소드는 블록 됩니다.

  `RandomAccessFile` 는,`InputStream` 의 서브 클래스가 아닙니다만, 이 메소드는 `InputStream` 의 `InputStream.read()` 메소드와 완전히와 같이 동작합니다.

  반환값:
    데이터의 다음의 바이트, 파일의 끝나에 도달했을 경우는 `-1`
  예외:
    `IOException` - 입출력 에러가 발생했을 경우 end-of-file 에 도달했을 경우는 throw 되지 않는다

### read

    public int read(byte[] b,
                    int off,
                    int len)
             throws IOException

  이 파일로부터 최대 `len` 바이트의 데이터를 바이트의 배열안에 읽어냅니다. 이 메소드는, 적어도 1 바이트의 입력을 이용할 수 있을 때까지 블록 됩니다.

  `RandomAccessFile` 는,`InputStream` 의 서브 클래스가 아닙니다만, 이 메소드는 `InputStream` 의 `InputStream.read(byte[], int, int)` 메소드와 완전히와 같이 동작합니다.

  파라미터:
    `b` - 데이터의 read처의 버퍼
    `off` - 데이터가 기입해지는 배열 `b` 의 개시 오프셋(offset)
    `len` - 읽히는 최대 바이트수
  반환값:
    버퍼에 읽힌 바이트의 합계수. 또는, 파일의 마지막에 이르렀기 때문에 그 이상 데이터가 존재하지 않는 경우는 `-1`
  예외:
    `IOException` - 파일의 마지막에 이르고 있는 것 이외의 이유로써 최초의 바이트를 읽어들일 수 없는 경우, 랜덤 억세스 파일이 닫혀졌을 경우, 또는 그 외의 입출력 에러가 발생했을 경우
    `NullPointerException` - `b` 가 `null` 의 경우
    `IndexOutOfBoundsException` - `off` 가 부의 경우,`len` 가 부의 경우, 또는 `len` 가 `b.length - off` 보다 큰 경우

### read

    public int read(byte[] b)
             throws IOException

  이 파일로부터 최대 `b.length` 바이트의 데이터를 바이트의 배열안에 읽어냅니다. 이 메소드는, 적어도 1 바이트의 입력을 이용할 수 있을 때까지 블록 됩니다.

  `RandomAccessFile` 는,`InputStream` 의 서브 클래스가 아닙니다만, 이 메소드는 `InputStream` 의 `InputStream.read(byte[])` 메소드와 완전히와 같이 동작합니다.

  파라미터:
    `b` - 데이터의 read처의 버퍼
  반환값:
    버퍼안에 읽어내진 바이트의 합계수, 이 파일의 마지막에 이르렀기 때문에 데이터가 없는 경우는 `-1`
  예외:
    `IOException` - 파일의 마지막에 이르고 있는 것 이외의 이유로써 최초의 바이트를 읽어들일 수 없는 경우, 랜덤 억세스 파일이 닫혀졌을 경우, 또는 그 외의 입출력 에러가 발생했을 경우
    `NullPointerException` - `b` 가 `null` 의 경우

### readFully

    public final void readFully(byte[] b)
                         throws IOException

  현재의 파일 포인터의 위치로부터 개시해 `b.length` 바이트를 이 파일로부터 바이트 배열안에 읽어냅니다. 이 메소드는, 요구된 바이트수가 읽어내질 때까지 파일로부터 반복해 읽어냅니다. 이 메소드는, 요구된 바이트수가 읽어내질 때까지, 스트림의 마지막이 검출될 때까지, 또는 예외가 throw 될 때까지 블록 됩니다.

  정의:
    인터페이스 `DataInput` 내의 `readFully`
  파라미터:
    `b` - 데이터의 read처의 버퍼
  예외:
    `EOFException` - 모든 바이트를 읽어들이기 전에, 이 파일의 마지막에 이르렀을 경우
    `IOException` - 입출력 에러가 발생했을 경우

### readFully

    public final void readFully(byte[] b,
                                int off,
                                int len)
                         throws IOException

  현재의 파일 포인터의 위치로부터 개시해 정확하게 `len` 바이트를 이 파일로부터 바이트 배열안에 읽어냅니다. 이 메소드는, 요구된 바이트수가 읽어내질 때까지 파일로부터 반복해 읽어냅니다. 이 메소드는, 요구된 바이트수가 읽어내질 때까지, 스트림의 마지막이 검출될 때까지, 또는 예외가 throw 될 때까지 블록 됩니다.

  정의:
    인터페이스 `DataInput` 내의 `readFully`
  파라미터:
    `b` - 데이터의 read처의 버퍼
    `off` - 데이터의 개시 오프셋(offset)
    `len` - 읽어들이는 바이트수
  예외:
    `EOFException` - 모든 바이트를 읽어들이기 전에, 이 파일의 마지막에 이르렀을 경우
    `IOException` - 입출력 에러가 발생했을 경우

### skipBytes

    public int skipBytes(int n)
                  throws IOException

  입력의 `n` 바이트를 스킵 해, 스킵 한 바이트를 파기하려고 합니다.

  이 메소드는, 일부의 소수의 바이트 (0 바이트나 가능)를 스킵 할 수 있습니다. 이 스킵은 복수의 조건에 기인할 가능성이 있습니다만, 생각되는 유일한 경우는,`n` 바이트가 스킵 되기 전에 파일의 마지막에 이르렀을 경우입니다. 이 메소드는,`EOFException` 를 throw 할 것은 없습니다. 스킵 된 실제의 바이트수가 돌려주어집니다. `n` 가 부의 경우, 바이트는 스킵 되지 않습니다.

  정의:
    인터페이스 `DataInput` 내의 `skipBytes`
  파라미터:
    `n` - 스킵 하는 바이트수
  반환값:
    스킵 된 실제의 바이트수
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

### write

    public void write(int b)
               throws IOException

  이 파일로 지정된 바이트를 기입합니다. 기입은, 현재의 파일 포인터의 위치에서 시작됩니다.

  정의:
    인터페이스 `DataOutput` 내의 `write`
  파라미터:
    `b` - 기입해지는 `byte`
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

### write

    public void write(byte[] b)
               throws IOException

  현재의 파일 포인터의 위치로부터 개시해, 지정된 바이트 배열로부터 `b.length` 바이트를 이 파일에 기입합니다.

  정의:
    인터페이스 `DataOutput` 내의 `write`
  파라미터:
    `b` - 데이터
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

### write

    public void write(byte[] b,
                      int off,
                      int len)
               throws IOException

  오프셋(offset) `off` 의 위치로부터 개시해, 지정된 바이트 배열로부터 `len` 바이트를 이 파일에 기입합니다.

  정의:
    인터페이스 `DataOutput` 내의 `write`
  파라미터:
    `b` - 데이터
    `off` - 데이터의 개시 오프셋(offset)
    `len` - 기입하는 바이트수
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

### getFilePointer

    public long getFilePointer()
                        throws IOException

  이 파일의 현재의 오프셋(offset)를 돌려줍니다.

  반환값:
    다음의 읽어내 또는 기입이 발생하는 위치의 파일의 선두로부터의 오프셋(offset) (바이트 단위)
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

### seek

    public void seek(long pos)
              throws IOException

  다음의 읽어내 또는 기입이 발생하는, 파일의 선두로부터 측정한 파일 포인터 오프셋(offset)를 설정합니다. 오프셋(offset)는, 파일의 마지막을 넘어 설정할 수 있습니다. 파일의 마지막을 넘어 오프셋(offset)를 설정해도 파일장은 바뀌지 않습니다. 파일장은, 파일의 마지막을 넘어 오프셋(offset)가 설정된 뒤에 기입해졌을 경우만 바뀝니다.

  파라미터:
    `pos` - 파일의 선두를 시점으로 한, 바이트 단위의 오프셋(offset) 위치. 이 정도치에 파일 포인터가 설정된다
  예외:
    `IOException` - `pos` 가 `0` 보다 작은 경우, 혹은 입출력 에러가 발생했을 경우

### length

    public long length()
                throws IOException

  이 파일의 길이를 돌려줍니다.

  반환값:
    이 파일의 길이 (바이트 단위로 측정)
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

### setLength

    public void setLength(long newLength)
                   throws IOException

  이 파일의 길이를 설정합니다.

  `length` 메소드에 의해 반환된 파일의 현재의 길이가,`newLength` 인수보다 큰 경우, 파일은 절약할 수 있습니다. 이 경우,`getFilePointer` 메소드에 의해 반환된 파일 오프셋(offset)가 `newLength` 보다 큰 경우, 이 메소드가 돌려준 뒤의 오프셋(offset)는 `newLength` 와 같게 됩니다.

  `length` 에 의해 반환된 파일의 현재의 길이가 `newLength` 인수보다 작은 경우, 파일은 확장됩니다. 이 경우, 파일의 확장 부분의 내용은 정의되고 있지 않습니다.

  파라미터:
    `newLength` - 파일의 필요한 길이
  예외:
    `IOException` - 입출력 에러가 발생했을 경우
  도입된 버젼:
    1.2

### close

    public void close()
               throws IOException

  이 랜덤 억세스 파일 스트림을 닫아, 스트림에 관련지을 수 있었던 system resource를 해제합니다. 닫혀진 랜덤 억세스 파일에서는 입출력 조작을 실행할 수 없습니다.

  이 파일에 관련지을 수 있고 있는 채널이 있는 경우는, 그 채널도 닫습니다.

  정의:
    인터페이스 `Closeable` 내의 `close`
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

### readBoolean

    public final boolean readBoolean()
                              throws IOException

  이 파일로부터 `boolean` 를 읽어냅니다. 이 메소드는, 현재의 파일 포인터로부터 개시해, 단일 바이트를 파일로부터 읽어냅니다. `0` 의 값은 `false` 를 나타냅니다. 다른 값은 `true` 를 나타냅니다. 이 메소드는, 바이트가 읽어내질 때까지, 스트림의 최후가 검출될 때까지, 또는 예외가 throw 될 때까지 블록 됩니다.

  정의:
    인터페이스 `DataInput` 내의 `readBoolean`
  반환값:
    읽어내진 `boolean` 치
  예외:
    `EOFException` - 이 파일의 마지막에 이르렀을 경우
    `IOException` - 입출력 에러가 발생했을 경우

### readByte

    public final byte readByte()
                        throws IOException

  이 파일로부터 서명 첨부 8 비트치를 읽어냅니다. 이 메소드는, 현재의 파일 포인터로부터 개시해, 파일로부터 바이트를 읽어냅니다. 읽어내진 바이트가 `b` 이며,`0 <= b <= 255` 의 경우, 결과는 다음과 같습니다.

  >          (byte)(b)

  이 메소드는, 바이트가 읽어내질 때까지, 스트림의 최후가 검출될 때까지, 또는 예외가 throw 될 때까지 블록 됩니다.

  정의:
    인터페이스 `DataInput` 내의 `readByte`
  반환값:
    서명 첨부 8 비트 `byte` 로서 해석되는 이 파일의 다음의 바이트
  예외:
    `EOFException` - 이 파일의 마지막에 이르렀을 경우
    `IOException` - 입출력 에러가 발생했을 경우

### readUnsignedByte

    public final int readUnsignedByte()
                               throws IOException

  이 파일로부터 부호 없음 8 비트수를 읽어냅니다. 이 메소드는, 현재의 파일 포인터로부터 개시해, 파일로부터 바이트를 읽어냅니다.

  이 메소드는, 바이트가 읽어내질 때까지, 스트림의 최후가 검출될 때까지, 또는 예외가 throw 될 때까지 블록 됩니다.

  정의:
    인터페이스 `DataInput` 내의 `readUnsignedByte`
  반환값:
    부호 없음 8 비트 수라고 해 해석되는 이 파일의 다음의 바이트
  예외:
    `EOFException` - 이 파일의 마지막에 이르렀을 경우
    `IOException` - 입출력 에러가 발생했을 경우

### readShort

    public final short readShort()
                          throws IOException

  이 파일로부터 서명 첨부 16 비트수를 읽어냅니다. 이 메소드는, 현재의 파일 포인터로부터 개시해, 파일로부터 2 바이트를 읽어냅니다. 읽어내진 2 바이트가 순서에 `b1` 와 `b2` 이며, 2 개의 값이 각각 `0` 이상 `255` 이하의 경우, 결과는 다음과 같습니다.

  >          (short)((b1 << 8) | b2)

  이 메소드는, 2 바이트가 읽어내질 때까지, 스트림의 최후가 검출될 때까지, 또는 예외가 throw 될 때까지 블록 됩니다.

  정의:
    인터페이스 `DataInput` 내의 `readShort`
  반환값:
    서명 첨부 16 비트 수라고 해 해석되는 이 파일의 다음의 2 바이트
  예외:
    `EOFException` - 2 바이트를 읽어들이기 전에, 이 파일의 마지막에 이르렀을 경우
    `IOException` - 입출력 에러가 발생했을 경우

### readUnsignedShort

    public final int readUnsignedShort()
                                throws IOException

  이 파일로부터 부호 없음 16 비트수를 읽어냅니다. 이 메소드는, 현재의 파일 포인터로부터 개시해, 파일로부터 2 바이트를 읽어냅니다. 읽어내진 2 바이트가 순서에 `b1` 와 `b2` 이며,`0 <= b1, b2 <= 255` 의 경우, 결과는 다음과 같습니다.

  >          (b1 << 8) | b2

  이 메소드는, 2 바이트가 읽어내질 때까지, 스트림의 최후가 검출될 때까지, 또는 예외가 throw 될 때까지 블록 됩니다.

  정의:
    인터페이스 `DataInput` 내의 `readUnsignedShort`
  반환값:
    부호 없음 16 비트 정수로서 해석되는 이 파일의 다음의 2 바이트
  예외:
    `EOFException` - 2 바이트를 읽어들이기 전에, 이 파일의 마지막에 이르렀을 경우
    `IOException` - 입출력 에러가 발생했을 경우

### readChar

    public final char readChar()
                        throws IOException

  이 파일로부터 문자를 읽어냅니다. 이 메소드는, 현재의 파일 포인터로부터 개시해, 파일로부터 2 바이트를 읽어냅니다. 읽어내진 2 바이트가 순서에 `b1` 와 `b2` 이며,`0 <= b1, b2 <= 255` 의 경우, 결과는 다음과 같습니다.

  >          (char)((b1 << 8) | b2)

  이 메소드는, 2 바이트가 읽어내질 때까지, 스트림의 최후가 검출될 때까지, 또는 예외가 throw 될 때까지 블록 됩니다.

  정의:
    인터페이스 `DataInput` 내의 `readChar`
  반환값:
    `char` 로서 해석되는 이 파일의 다음의 2 바이트
  예외:
    `EOFException` - 2 바이트를 읽어들이기 전에, 이 파일의 마지막에 이르렀을 경우
    `IOException` - 입출력 에러가 발생했을 경우

### readInt

    public final int readInt()
                      throws IOException

  이 파일로부터 서명 첨부 32 비트 정수 문자를 읽어냅니다. 이 메소드는, 현재의 파일 포인터로부터 개시해, 파일로부터 4 바이트를 읽어냅니다. 읽어내진 바이트가 순서에 `b1`,`b2`,`b3`, 및 `b4` 이며,`0 <= b1, b2, b3, b4 <= 255` 의 경우, 결과는 다음과 같습니다.

  >          (b1 << 24) | (b2 << 16) + (b3 << 8) + b4

  이 메소드는, 4 바이트가 읽어내질 때까지, 스트림의 최후가 검출될 때까지, 또는 예외가 throw 될 때까지 블록 됩니다.

  정의:
    인터페이스 `DataInput` 내의 `readInt`
  반환값:
    `int` 로서 해석되는 이 파일의 다음의 4 바이트
  예외:
    `EOFException` - 4 바이트를 읽어들이기 전에, 이 파일의 마지막에 이르렀을 경우
    `IOException` - 입출력 에러가 발생했을 경우

### readLong

    public final long readLong()
                        throws IOException

  이 파일로부터 서명 첨부 64 비트 정수 문자를 읽어냅니다. 이 메소드는, 현재의 파일 포인터로부터 개시해, 파일로부터 8 바이트를 읽어냅니다. 읽어내진 바이트가 순서에 `b1`,`b2`,`b3`,`b4`,`b5`,`b6`,`b7`, 및 `b8` 이며, 다음의 조건의 경우,

  >          0 <= b1, b2, b3, b4, b5, b6, b7, b8 <=255,

  결과는 이하와 같게 됩니다.

  >          ((long) b1 << 56) + ((long) b2 << 48)
  >          + ((long) b3 << 40) + ((long) b4 << 32)
  >          + ((long) b5 << 24) + ((long) b6 << 16)
  >          + ((long) b7 << 8) + b8

  이 메소드는, 8 바이트가 읽어내질 때까지, 스트림의 최후가 검출될 때까지, 또는 예외가 throw 될 때까지 블록 됩니다.

  정의:
    인터페이스 `DataInput` 내의 `readLong`
  반환값:
    `long` 로서 해석되는 이 파일의 다음의 8 바이트
  예외:
    `EOFException` - 8 바이트를 읽어들이기 전에, 이 파일의 마지막에 이르렀을 경우
    `IOException` - 입출력 에러가 발생했을 경우

### readFloat

    public final float readFloat()
                          throws IOException

  이 파일로부터 `float` 를 읽어냅니다. 이 메소드는, 현재의 파일 포인터로부터 개시해,`readInt` 메소드를 사용했을 경우와 같이 파일로부터 `int` 치를 읽어내, 읽어낸 `int` 를 `Float` 클래스의 `intBitsToFloat` 메소드를 사용해 `float` 로 합니다.

  이 메소드는, 4 바이트가 읽어내질 때까지, 스트림의 최후가 검출될 때까지, 또는 예외가 throw 될 때까지 블록 됩니다.

  정의:
    인터페이스 `DataInput` 내의 `readFloat`
  반환값:
    `float` 로서 해석되는 이 파일의 다음의 4 바이트
  예외:
    `EOFException` - 4 바이트를 읽어들이기 전에, 이 파일의 마지막에 이르렀을 경우
    `IOException` - 입출력 에러가 발생했을 경우
  관련 항목:
    `readInt()` , `Float.intBitsToFloat(int)`

### readDouble

    public final double readDouble()
                            throws IOException

  이 파일로부터 `double` 를 읽어냅니다. 이 메소드는, 현재의 파일 포인터로부터 개시해,`readLong` 메소드를 사용했을 경우와 같이 파일로부터 `long` 치를 읽어내, 읽어낸 `long` 를 `Double` 클래스의 `longBitsToDouble` 메소드를 사용해 `double` 로 변환합니다.

  이 메소드는, 8 바이트가 읽어내질 때까지, 스트림의 최후가 검출될 때까지, 또는 예외가 throw 될 때까지 블록 됩니다.

  정의:
    인터페이스 `DataInput` 내의 `readDouble`
  반환값:
    `double` 로서 해석되는 이 파일의 다음의 8 바이트
  예외:
    `EOFException` - 8 바이트를 읽어들이기 전에, 이 파일의 마지막에 이르렀을 경우
    `IOException` - 입출력 에러가 발생했을 경우
  관련 항목:
    `readLong()` , `Double.longBitsToDouble(long)`

### readLine

    public final String  readLine()
                          throws IOException

  이 파일의 텍스트의 다음의 행을 읽어냅니다. 이 메소드는, 현재의 파일 포인터로부터 개시해, 개행 또는 파일의 마지막에 이를 때까지 파일로부터 바이트를 연속적으로 읽어냅니다. 각 바이트는, 문자의 하위 8 비트의 바이트치를 취득해, 문자의 상위 8 비트를 0 으로 설정해 문자에 변환됩니다. 따라서, 이 메소드는 Unicode 캐릭터 세트 전체를 지원하고 있습니다.

  텍스트행은, 왕복대 리턴 문자 (`'\r'`), 개행 문자 (`'\n'`), 왕복대 리턴 문자와 거기에 계속되는 개행 문자, 또는 파일의 마지막으로 종료합니다. 줄 끝 문자는 파기되어 반환된 캐릭터 라인의 부분에 포함되지 않습니다.

  이 메소드는, 개행 문자가 읽어내질 때까지, 왕복대 리턴과 거기에 계속되는 바이트가 읽어내질 때까지 (개행인가 어떤가를 판정하기 위해(때문에)), 파일의 마지막에 이를 때까지, 또는 예외가 throw 될 때까지 블록 됩니다.

  정의:
    인터페이스 `DataInput` 내의 `readLine`
  반환값:
    이 파일의 텍스트의 다음의 행, 1 바이트가 읽어내지기 전이어도 파일의 마지막이 검출되었을 경우는 null
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

### readUTF

    public final String  readUTF()
                         throws IOException

  이 파일로부터 캐릭터 라인을 읽어냅니다. 캐릭터 라인은,수정 UTF-8 형식을 사용해 encode 되고 있습니다.

  현재의 파일 포인터로부터 개시해,`readUnsignedShort` 를 사용했을 경우와 같이 최초의 2 바이트를 읽어냅니다. 이 값은, 결과적으로 얻을 수 있는 캐릭터 라인의 길이는 아니고, encode 된 캐릭터 라인에 있는 후속의 바이트수를 제공합니다. 후속의 바이트는, 수정 UTF-8 형식의 바이트 인코딩 문자로서 해석되어 문자에 변환됩니다.

  이 메소드는, 모든 바이트가 읽어내질 때까지, 스트림의 최후가 검출될 때까지, 또는 예외가 throw 될 때까지 블록 됩니다.

  정의:
    인터페이스 `DataInput` 내의 `readUTF`
  반환값:
    Unicode 캐릭터 라인
  예외:
    `EOFException` - 모든 바이트를 읽어들이기 전에, 이 파일의 마지막에 이르렀을 경우
    `IOException` - 입출력 에러가 발생했을 경우
    `UTFDataFormatException` - 바이트가 유효한 수정 UTF-8 인코딩의 Unicode 캐릭터 라인을 나타내지 않는 경우
  관련 항목:
    `readUnsignedShort()`

### writeBoolean

    public final void writeBoolean(boolean v)
                            throws IOException

  1 바이트치로서 `boolean` 를 파일에 기입합니다. 값 `true` 는, 값 `(byte) 1` 으로서 기입해져 값 `false` 는 값 `(byte) 0` 으로서 기입해집니다. 기입은, 파일 포인터의 현재의 위치에서 시작됩니다.

  정의:
    인터페이스 `DataOutput` 내의 `writeBoolean`
  파라미터:
    `v` - 기입해지는 `boolean` 치
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

### writeByte

    public final void writeByte(int v)
                         throws IOException

  `byte` 를 1 바이트치로서 이 파일에 기입합니다. 기입은, 파일 포인터의 현재의 위치에서 시작됩니다.

  정의:
    인터페이스 `DataOutput` 내의 `writeByte`
  파라미터:
    `v` - 기입해지는 `byte` 치
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

### writeShort

    public final void writeShort(int v)
                          throws IOException

  `short` 를 2 바이트치로서 고위 바이트를 먼저 파일에 기입합니다. 기입은, 파일 포인터의 현재의 위치에서 시작됩니다.

  정의:
    인터페이스 `DataOutput` 내의 `writeShort`
  파라미터:
    `v` - 기입해지는 `short` 치
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

### writeChar

    public final void writeChar(int v)
                         throws IOException

  `char` 를 2 바이트치로서 고위 바이트를 먼저 파일에 기입합니다. 기입은, 파일 포인터의 현재의 위치에서 시작됩니다.

  정의:
    인터페이스 `DataOutput` 내의 `writeChar`
  파라미터:
    `v` - 기입해지는 `char` 치
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

### writeInt

    public final void writeInt(int v)
                        throws IOException

  `int` 를 4 바이트로서 고위 바이트를 먼저 파일에 기입합니다. 기입은, 파일 포인터의 현재의 위치에서 시작됩니다.

  정의:
    인터페이스 `DataOutput` 내의 `writeInt`
  파라미터:
    `v` - 기입해지는 `int` 치
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

### writeLong

    public final void writeLong(long v)
                         throws IOException

  `long` 를 8 바이트로서 고위 바이트를 먼저 파일에 기입합니다. 기입은, 파일 포인터의 현재의 위치에서 시작됩니다.

  정의:
    인터페이스 `DataOutput` 내의 `writeLong`
  파라미터:
    `v` - 기입해지는 `long` 치
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

### writeFloat

    public final void writeFloat(float v)
                          throws IOException

  `Float` 클래스의 `floatToIntBits` 메소드를 사용해, float 인수를 `int` 로 변환합니다. 다음에, 변환된 `int` 치를 4 바이트의 양으로서 고위 바이트를 먼저 파일에 기입합니다. 기입은, 파일 포인터의 현재의 위치에서 시작됩니다.

  정의:
    인터페이스 `DataOutput` 내의 `writeFloat`
  파라미터:
    `v` - 기입해지는 `float` 치
  예외:
    `IOException` - 입출력 에러가 발생했을 경우
  관련 항목:
    `Float.floatToIntBits(float)`

### writeDouble

    public final void writeDouble(double v)
                           throws IOException

  `Double` 클래스의 `doubleToLongBits` 메소드를 사용해, double 인수를 `long` 로 변환합니다. 다음에, 변환된 `long` 치를 8 바이트의 양으로서 고위 바이트를 먼저 파일에 기입합니다. 기입은, 파일 포인터의 현재의 위치에서 시작됩니다.

  정의:
    인터페이스 `DataOutput` 내의 `writeDouble`
  파라미터:
    `v` - 기입해지는 `double` 치
  예외:
    `IOException` - 입출력 에러가 발생했을 경우
  관련 항목:
    `Double.doubleToLongBits(double)`

### writeBytes

    public final void writeBytes(String  s)
                          throws IOException

  캐릭터 라인을 바이트의 순서로서 파일에 기입합니다. 캐릭터 라인의 각 문자는, 고위의 8 비트를 파기해 순서에 기입해집니다. 기입은, 파일 포인터의 현재의 위치에서 시작됩니다.

  정의:
    인터페이스 `DataOutput` 내의 `writeBytes`
  파라미터:
    `s` - 기입해지는 바이트의 캐릭터 라인
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

### writeChars

    public final void writeChars(String  s)
                          throws IOException

  캐릭터 라인을 문자의 순서로서 파일에 기입합니다. 각 문자는,`writeChar` 메소드를 사용했을 경우와 같이, 데이터 출력 스트림에 기입해집니다. 기입은, 파일 포인터의 현재의 위치에서 시작됩니다.

  정의:
    인터페이스 `DataOutput` 내의 `writeChars`
  파라미터:
    `s` - 기입해지는 `String` 치
  예외:
    `IOException` - 입출력 에러가 발생했을 경우
  관련 항목:
    `writeChar(int)`

### writeUTF

    public final void writeUTF(String  str)
                        throws IOException

  수정 UTF-8 인코딩을 사용해, 머신에 의존하는 방식으로 캐릭터 라인을 파일에 기입합니다.

  우선, 현재의 파일 포인터로부터 개시해, 후속의 바이트수를 지정하는 `writeShort` 메소드를 사용했을 경우와 같이, 2 바이트가 파일에 기입해집니다. 이 값은, 실제로 기입해지는 바이트수이며, 캐릭터 라인의 길이가 아닙니다. 길이에 이어, 각 문자에 수정 UTF-8 인코딩을 사용해, 캐릭터 라인의 각 문자가 순서에 출력됩니다.

  정의:
    인터페이스 `DataOutput` 내의 `writeUTF`
  파라미터:
    `str` - 기입해지는 캐릭터 라인
  예외:
    `IOException` - 입출력 에러가 발생했을 경우

개요 | 패키지 | 클래스 | 사용 | 계층 트리 | 비추천 API | 색인 | 헬프

JavaTM Platform
Standard Ed. 6

앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.