차근차근/Android

java.io.ByteArrayOutputStream

예쁜꽃이피었으면 2014. 7. 29. 00:48

 

 

java.io.bytearrayoutputstream 

http://www.maluchi.com/java/j2sdk-1_4_1-doc_ko/api/java/io/ByteArrayOutputStream.html

java.io 
클래스 ByteArrayOutputStream

java.lang.Object 
  |
  +--java.io.OutputStream 
        |
        +--java.io.ByteArrayOutputStream

public class ByteArrayOutputStream
extends OutputStream

데이터가 바이트 배열에 기입해지는 출력 스트림을 구현합니다. 데이터가 기입해지는에 따라, 버퍼는 자동적으로 커져 갑니다. toByteArray() 와toString() 를 사용해 데이타를 뽑기 시작할 수가 있습니다.

ByteArrayOutputStream 를 닫아도, 아무것도 변화는 없습니다. 스트림을 닫은 후에 이 클래스의 메소드를 호출해도,IOException 는 생성되지 않습니다.

 

 

도입된 버젼:
JDK1. 0

필드의 개요
protected  byte[] buf 
          데이터가 저장되는 버퍼입니다.
protected  int count 
          버퍼안의 유효 바이트수입니다.
 
생성자의 개요
ByteArrayOutputStream () 
          바이트 배열 출력 스트림을 새롭게 작성합니다.
ByteArrayOutputStream (int size) 
          바이트수로 지정된 사이즈의 버퍼를 가지는 바이트 배열 출력 스트림을 새롭게 작성합니다.
 
메소드의 개요
 void close () 
          ByteArrayOutputStream 를 닫아도, 아무것도 변화는 없습니다.
 void reset () 
          바이트 배열 출력 스트림의 count 필드를 제로에 리셋트 합니다.
 int size () 
          버퍼의 현재의 사이즈를 돌려줍니다.
 byte[] toByteArray () 
          메모리를 할당해 바이트 배열을 새롭게 작성합니다.
 String toString () 
          플랫폼의 디폴트의 캐릭터 인코딩에 따라 바이트를 캐릭터로 변환하면서, 버퍼의 내용을 캐릭터 라인으로 변환합니다.
 String toString (int hibyte) 
          추천 되고 있지 않습니다.  이 메소드는 바이트를 캐릭터 라인에 적절히 변환할 수 없습니다. JDK 1. 1 현재, 추천 되는 방법은 인코딩명을 인수에 취하는 toString(String enc) 메소드인가, 플랫폼의 디폴트의 캐릭터 인코딩을 사용하는 toString() 메소드를 사용하는 것입니다.
 String toString (String  enc) 
          지정된 캐릭터 인코딩에 따라 바이트를 캐릭터로 변환하면서, 버퍼의 내용을 캐릭터 라인으로 변환합니다.
 void write (byte[] b, int off, int len) 
          지정된 바이트 배열의 오프셋(offset) 위치 off 로부터 시작되는 len 바이트를, 바이트 배열 출력 스트림에 기입합니다.
 void write (int b) 
          지정된 바이트를, 바이트 배열 출력 스트림에 기입합니다.
 void writeTo (OutputStream  out) 
          바이트 배열 출력 스트림의 모든 내용을, 지정된 출력 스트림 인수에 기입합니다.
 
클래스 java.io. OutputStream 에서 상속받은 메소드
flush , write
 
클래스 java.lang. Object 에서 상속받은 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait
 
필드의 상세

buf

protected byte[] buf
데이터가 저장되는 버퍼입니다.

 


count

protected int count
버퍼안의 유효 바이트수입니다.

 

생성자의 상세

ByteArrayOutputStream

public ByteArrayOutputStream()
바이트 배열 출력 스트림을 새롭게 작성합니다. 버퍼 용량의 초기치는 32 바이트입니다만, 이 사이즈는 필요에 따라서 커집니다.

 


ByteArrayOutputStream

public ByteArrayOutputStream(int size)
바이트수로 지정된 사이즈의 버퍼를 가지는 바이트 배열 출력 스트림을 새롭게 작성합니다.

 

파라미터:
size - 초기 사이즈
예외:
IllegalArgumentException - 사이즈가 부의 값의 경우
메소드의 상세

write

public void write(int b)
지정된 바이트를, 바이트 배열 출력 스트림에 기입합니다.

 

정의:
클래스 OutputStream 내의 write
파라미터:
b - 기입하는 바이트

write

public void write(byte[] b,
                  int off,
                  int len)
지정된 바이트 배열의 오프셋(offset) 위치 off 로부터 시작되는 len 바이트를, 바이트 배열 출력 스트림에 기입합니다.

 

오버라이드(override):
클래스 OutputStream 내의 write
파라미터:
b - 데이터
off - 데이터의 개시 오프셋(offset)
len - 기입하는 바이트수

writeTo

public void writeTo(OutputStream  out)
             throws IOException 
바이트 배열 출력 스트림의 모든 내용을, 지정된 출력 스트림 인수에 기입합니다. 이것은 out.write(buf, 0, count) 를 사용해 출력 스트림의 write 메소드를 호출하는 것과 같습니다.

 

파라미터:
out - 데이터를 기입하는 출력 스트림
예외:
IOException - 입출력 에러가 발생했을 경우

reset

public void reset()
바이트 배열 출력 스트림의 count 필드를 제로에 리셋트 합니다. 이 결과, 현재 출력 스트림에 축적 떠날 수 있어 모든 데이터는 파기됩니다. 이 출력 스트림은 벌써 할당할 수 있고 있는 버퍼 스페이스를 사용해, 재차 사용할 수가 있습니다.

 

관련 항목:
ByteArrayInputStream.count

toByteArray

public byte[] toByteArray()
메모리를 할당해 바이트 배열을 새롭게 작성합니다. 배열의 사이즈는 현재의 출력 스트림과 같아, 버퍼안의 유효 데이터는 여기에 카피됩니다.

 

반환값:
출력 스트림의 현재의 내용을 바이트 배열로서 돌려주는
관련 항목:
size()

size

public int size()
버퍼의 현재의 사이즈를 돌려줍니다.

 

반환값:
count 필드의 값. 출력 스트림안의 유효 바이트수를 나타내는
관련 항목:
count

toString

public String  toString()
플랫폼의 디폴트의 캐릭터 인코딩에 따라 바이트를 캐릭터로 변환하면서, 버퍼의 내용을 캐릭터 라인으로 변환합니다.

 

오버라이드(override):
클래스 Object 내의 toString
반환값:
버퍼의 내용으로부터 변환된 캐릭터 라인
도입된 버젼:
JDK1. 1

toString

public String  toString(String  enc)
                throws UnsupportedEncodingException 
지정된 캐릭터 인코딩에 따라 바이트를 캐릭터로 변환하면서, 버퍼의 내용을 캐릭터 라인으로 변환합니다.

 

파라미터:
enc - 캐릭터 인코딩의 이름
반환값:
버퍼의 내용으로부터 변환된 캐릭터 라인
예외:
UnsupportedEncodingException - 지정된 캐릭터 인코딩이 서포트되어 있지 않은 경우
도입된 버젼:
JDK1. 1

toString

public String  toString(int hibyte)
추천 되고 있지 않습니다.  이 메소드는 바이트를 캐릭터 라인에 적절히 변환할 수 없습니다. JDK 1. 1 현재, 추천 되는 방법은 인코딩명을 인수에 취하는 toString(String enc) 메소드인가, 플랫폼의 디폴트의 캐릭터 인코딩을 사용하는 toString() 메소드를 사용하는 것입니다.

 

새롭게 메모리를 할당해 캐릭터 라인을 작성합니다. 캐릭터 라인의 사이즈는 현재의 출력 스트림과 같게 되어 버퍼안의 유효 데이터는 여기에 카피됩니다. 작성되는 캐릭터 라인의 각 캐릭터 데이터 c 는 바이트 배열의 대응하는 요소 b 로부터, 다음과 같이 됩니다.
     c == (char)(((hibyte & 0xff) << 8) | (b & 0xff))
 

 

파라미터:
hibyte - 결과의 각 Unicode 캐릭터의 상위 바이트
반환값:
출력 스트림의 현재의 내용을 나타내는 캐릭터 라인
관련 항목:
size() , toString(String) , toString()

close

public void close()
           throws IOException 
ByteArrayOutputStream 를 닫아도, 아무것도 변화는 없습니다. 스트림을 닫은 후에 이 클래스의 메소드를 호출해도,IOException 는 생성되지 않습니다.

 

 

오버라이드(override):
클래스 OutputStream 내의 close
예외:
IOException - 입출력 에러가 발생했을 경우

 

 


반응형