JavaTM Platform
Standard Ed. 6

java.io
인터페이스 DataOutput

기존의 서브 인터페이스의 일람:
ImageOutputStream , ObjectOutput
기존의 구현 클래스의 일람:
DataOutputStream , FileCacheImageOutputStream , FileImageOutputStream , ImageOutputStreamImpl , MemoryCacheImageOutputStream , ObjectOutputStream , RandomAccessFile


public interface DataOutput

DataOutput 인터페이스는, Java 의 원시형이 있으면 그 데이터를 일련의 바이트로 변환해 바이너리 스트림에 기입하기 위해서(때문에) 제공되고 있습니다. 또,String수정 UTF-8 형식으로 변환해 결과의 일련의 바이트를 기입하는 기능도 있습니다.  

이 인터페이스의 바이트를 기입하는 모든 메소드에서는, 하등의 이유로써 바이트를 기입할 수 없는 경우는, 일반적으로,IOException 가 throw 됩니다.

도입된 버젼:
JDK1. 0
관련 항목:
DataInput , DataOutputStream

메소드의 개요
 void write (byte[] b)
          출력 스트림에 배열 b 의 모든 바이트를 기입합니다.
 void write (byte[] b, int off, int len)
          배열 b 로부터 len 바이트를 차례로 출력 스트림에 기입합니다.
 void write (int b)
          인수 b 의 하위 8 비트를 출력 스트림에 기입합니다.
 void writeBoolean (boolean v)
          1 개의 boolean 치를 출력 스트림에 기입합니다.
 void writeByte (int v)
          인수 v 의 하위 8 비트를 출력 스트림에 기입합니다.
 void writeBytes (String  s)
          캐릭터 라인을 출력 스트림에 기입합니다.
 void writeChar (int v)
          2 바이트로부터 구성되는 char 치를 출력 스트림에 기입합니다.
 void writeChars (String  s)
          캐릭터 라인 s 내의 각 문자를, 1 문자 마다 2 바이트씩 차례로 기입합니다.
 void writeDouble (double v)
          8 바이트로부터 구성되는 double 치를 출력 스트림에 기입합니다.
 void writeFloat (float v)
          4 바이트로부터 구성되는 float 치를 출력 스트림에 기입합니다.
 void writeInt (int v)
          4 바이트로부터 구성되는 int 치를 출력 스트림에 기입합니다.
 void writeLong (long v)
          8 바이트로부터 구성되는 long 치를 출력 스트림에 기입합니다.
 void writeShort (int v)
          인수의 값을 나타내는 2 바이트를 출력 스트림에 기입합니다.
 void writeUTF (String  s)
          길이 정보의 2 바이트를 출력 스트림에 기입합니다.
 

메소드의 상세

write

void write(int b)
           throws IOException 
인수 b 의 하위 8 비트를 출력 스트림에 기입합니다. b 의 상위 24 비트는 무시됩니다.

파라미터:
b - 기입하는 바이트
예외:
IOException - 입출력 에러가 발생했을 경우

write

void write(byte[] b)
           throws IOException 
출력 스트림에 배열 b 의 모든 바이트를 기입합니다. bnull 의 경우,NullPointerException 가 throw 됩니다. b.length 가 제로의 경우, 기입해지는 바이트는 없습니다. 그렇지 않은 경우는, 우선 바이트 b[0], 다음에 b[1] 으로 차례차례 기입해져 마지막에 바이트 b[b.length-1] 가 기입해집니다.

파라미터:
b - 데이터
예외:
IOException - 입출력 에러가 발생했을 경우

write

void write(byte[] b,
           int off,
           int len)
           throws IOException 
배열 b 로부터 len 바이트를 차례로 출력 스트림에 기입합니다. bnull 의 경우는,NullPointerException 가 throw 됩니다. off 가 0 보다 작은 값의 경우,len 가 0 보다 작은 값의 경우, 혹은 off+len 가 배열 b 의 길이보다 큰 경우에는,IndexOutOfBoundsException 가 throw 됩니다. len 가 제로의 경우, 기입해지는 바이트는 없습니다. 그렇지 않은 경우는, 우선 바이트 b[off], 다음에 b[off+1] 와 차례차례 기입해져 마지막에 바이트 b[off+len-1] 가 기입해집니다.

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

writeBoolean

void writeBoolean(boolean v)
                  throws IOException 
1 개의 boolean 치를 출력 스트림에 기입합니다. 인수 vtrue 의 경우는, 값 (byte) 1 이 기입해집니다. vfalse 의 경우는, 값 (byte) 0 이 기입해집니다. 이 메소드가 기입하는 바이트는,DataInput 인터페이스의 readBoolean 메소드에 의해 읽힙니다. 다음에,readBoolean 메소드에 의해,v 에 동일한 boolean 가 돌려주어집니다.

파라미터:
v - 기입해지는 boolean
예외:
IOException - 입출력 에러가 발생했을 경우

writeByte

void writeByte(int v)
               throws IOException 
인수 v 의 하위 8 비트를 출력 스트림에 기입합니다. v 의 상위 24 비트는 무시됩니다. 이것은 writeByte 가, 정수 인수의 write 와 완전히 같은 것을 의미합니다. 이 메소드가 기입하는 바이트는,DataInput 인터페이스의 readByte 메소드에 의해 읽힙니다. 다음에,readByte 메소드에 의해,(byte) v 에 동일한 byte 가 돌려주어집니다.

파라미터:
v - 기입해지는 바이트치
예외:
IOException - 입출력 에러가 발생했을 경우

writeShort

void writeShort(int v)
                throws IOException 
인수의 값을 나타내는 2 바이트를 출력 스트림에 기입합니다. 다음에 나타내는 바이트치가, 이 차례로 기입해집니다.


 (byte)(0xff & (v >> 8))
 (byte)(0xff & v)
  

이 메소드가 기입하는 바이트는,DataInput 인터페이스의 readShort 메소드에 의해 읽힙니다. 다음에,readShort 메소드에 의해,(short) v 에 동일한 short 가 돌려주어집니다.

파라미터:
v - 기입해지는 short
예외:
IOException - 입출력 에러가 발생했을 경우

writeChar

void writeChar(int v)
               throws IOException 
2 바이트로부터 구성되는 char 치를 출력 스트림에 기입합니다. 다음에 나타내는 바이트치가, 이 차례로 기입해집니다.  


 (byte)(0xff & (v >> 8))
 (byte)(0xff & v)
 

이 메소드가 기입하는 바이트는,DataInput 인터페이스의 readChar 메소드에 의해 읽힙니다. 다음에,readChar 메소드에 의해,(char) v 에 동일한 char 가 돌려주어집니다.

파라미터:
v - 기입해지는 char
예외:
IOException - 입출력 에러가 발생했을 경우

writeInt

void writeInt(int v)
              throws IOException 
4 바이트로부터 구성되는 int 치를 출력 스트림에 기입합니다. 다음에 나타내는 바이트치가, 이 차례로 기입해집니다.  


 (byte)(0xff & (v >> 24))
 (byte)(0xff & (v >> 16))
 (byte)(0xff & (v >>    8))
 (byte)(0xff & v)
 

이 메소드가 기입하는 바이트는,DataInput 인터페이스의 readInt 메소드에 의해 읽힙니다. readInt 메소드는 다음에,v 에 동일한 int 를 돌려줍니다.

파라미터:
v - 기입해지는 int
예외:
IOException - 입출력 에러가 발생했을 경우

writeLong

void writeLong(long v)
               throws IOException 
8 바이트로부터 구성되는 long 치를 출력 스트림에 기입합니다. 다음에 나타내는 바이트치가, 이 차례로 기입해집니다.  


 (byte)(0xff & (v >> 56))
 (byte)(0xff & (v >> 48))
 (byte)(0xff & (v >> 40))
 (byte)(0xff & (v >> 32))
 (byte)(0xff & (v >> 24))
 (byte)(0xff & (v >> 16))
 (byte)(0xff & (v >>  8))
 (byte)(0xff & v)
 

이 메소드가 기입하는 바이트는,DataInput 인터페이스의 readLong 메소드에 의해 읽힙니다. 다음에,readLong 메소드에 의해,v 에 동일한 long 가 돌려주어집니다.

파라미터:
v - 기입해지는 long
예외:
IOException - 입출력 에러가 발생했을 경우

writeFloat

void writeFloat(float v)
                throws IOException 
4 바이트로부터 구성되는 float 치를 출력 스트림에 기입합니다. 이 때문에는, 우선 Float.floatToIntBits 메소드와 완전히 같은 방법으로 이 float 치를 int 로 변환하고 나서,writeInt 메소드와 완전히 같은 방법으로 int 치를 기입합니다. 이 메소드가 기입하는 바이트는,DataInput 인터페이스의 readFloat 메소드에 의해 읽힙니다. 다음에,readFloat 메소드에 의해,v 에 동일한 float 가 돌려주어집니다.

파라미터:
v - 기입해지는 float
예외:
IOException - 입출력 에러가 발생했을 경우

writeDouble

void writeDouble(double v)
                 throws IOException 
8 바이트로부터 구성되는 double 치를 출력 스트림에 기입합니다. 이 때문에는, 우선 Double.doubleToLongBits 메소드와 완전히 같은 방법으로 이 double 치를 long 로 변환하고 나서,writeLong 메소드와 완전히 같은 방법으로 long 치를 기입합니다. 이 메소드가 기입하는 바이트는,DataInput 인터페이스의 readDouble 메소드에 의해 읽힙니다. 다음에,readDouble 메소드에 의해,v 에 동일한 double 가 돌려주어집니다.

파라미터:
v - 기입해지는 double
예외:
IOException - 입출력 에러가 발생했을 경우

writeBytes

void writeBytes(String  s)
                throws IOException 
캐릭터 라인을 출력 스트림에 기입합니다. 캐릭터 라인 s 의 각 문자가 차례로 꺼내져 1 바이트가 출력 스트림에 기입해집니다. snull 의 경우는,NullPointerException 가 throw 됩니다.

s.length 가 제로의 경우, 바이트는 기입해지지 않습니다. 제로가 아닌 경우, 문자 s[0] 이 최초로 기입해져 다음에 s[1], 이라고 하는 상태에 계속되어, 마지막에 문자 s[s.length-1] 가 기입해집니다. 각 문자에 대해서는,writeByte 메소드와 완전히 같은 방법으로, 1 바이트, 즉 하위 바이트가 기입해집니다. 캐릭터 라인내의 각 문자의 상위 8 비트는 무시됩니다.

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

writeChars

void writeChars(String  s)
                throws IOException 
캐릭터 라인 s 내의 각 문자를, 1 문자 마다 2 바이트씩 차례로 기입합니다. snull 의 경우,NullPointerException 가 throw 됩니다. s.length 가 제로의 경우, 기입해지는 문자는 없습니다. 그렇지 않은 경우는, 우선 문자 s[0], 다음에 s[1] 으로 차례차례 기입해져 마지막에 문자 s[s.length-1] 가 기입해집니다. 각 문자에 대해서는,writeChar 메소드와 완전히 같은 방법으로, 상위 바이트를 먼저 해 2 바이트가 실제로 기입해집니다.

파라미터:
s - 기입해지는 캐릭터 라인의 값
예외:
IOException - 입출력 에러가 발생했을 경우

writeUTF

void writeUTF(String  s)
              throws IOException 
길이 정보의 2 바이트를 출력 스트림에 기입합니다. 그 뒤에는, 캐릭터 라인 s 내의 각 문자의수정 UTF-8 표현이 계속됩니다. snull 의 경우,NullPointerException 가 throw 됩니다. 캐릭터 라인 s 내의 각 문자는, 문자의 값에 근거해, 1, 2, 또는 3 바이트의 그룹에 변환됩니다.

문자 c\u0001 ~ \u007f 의 범위에 있는 경우, 다음과 같은 1 바이트로 표현됩니다.

(byte) c 

문자 c\u0000 의 경우나,\u0080 ~ \u07ff 의 범위에 있는 경우에는, 다음의 순서로 기입해지는 2 바이트에 의해 나타내집니다.


 (byte)(0xc0 | (0x1f & (c >> 6)))
 (byte)(0x80 | (0x3f & c))

문자 c\u0800 ~ uffff 의 범위에 있는 경우, 다음의 순서로 기입해지는 3 바이트에 의해 나타내집니다.


 (byte)(0xe0 | (0x0f & (c >> 12)))
 (byte)(0x80 | (0x3f & (c >>  6)))
 (byte)(0x80 | (0x3f & c))

우선,s 의 모든 문자를 나타내는데 필요한 총바이트수가 계산됩니다. 이 수치가 65535 를 넘는 경우는,UTFDataFormatException 가 throw 됩니다. 그렇지 않은 경우는, 이 길이가 writeShort 메소드와 완전히 같은 방법으로 출력 스트림에 기입해집니다. 다음에, 캐릭터 라인 s 내의 각 문자의 1, 2, 또는 3 바이트 표현이 기입해집니다.

이 메소드가 기입하는 바이트는,DataInput 인터페이스의 readUTF 메소드에 의해 읽힙니다. 다음에,readUTF 메소드에 의해,s 에 동일한 String 가 돌려주어집니다.

파라미터:
s - 기입해지는 캐릭터 라인의 값
예외:
IOException - 입출력 에러가 발생했을 경우

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 도 참조해 주세요.