자바

자바 IO 출력 스트림 java OutputStream -> write(int b), write(byte[] b), write(byte[] b, int off, int len)

알통몬_ 2017. 4. 1. 18:44
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

2017/04/01 - [자바] - 자바 IO 기반의 입출력과 네트워킹 => IO 패키지 / 입력 스트림, 출력 스트림


OutputStream : 추상 클래스이며 바이트 기반 출력 스트림의 최상위 클래스입니다.

모든 바이트 기반의 출력 스트림 클래스들은 이 클래스를 상속받아 만들어집니다.

-> FileOutputStream, PrintStream, BufferedOutputStream, DateOutputStream


write( int b ) : 매개 변수로 주어진 int 값에서 끝에 있는 1Byte만 출력 스트림으로 보냅니다.

매개 변수가 정수 타입이지만 4Byte를 모두 보내는 것은 아닙니다.

OutputStream outputStream = new OutputStream("파일 경로");

byte[] datas = "ABC".getBytes();

for( int i = 0; i< datas.length(); i++ ) {

    outputStream.write(datas[i]);

}


write( byte[] b ) : 매개값으로 주어진 바이트 배열의 모든 바이트를 출력 스트림으로 보냅니다.

OutputStream outputStream = new OutputStream("파일 경로");

byte[] datas = "ABC".getBytes();

outputStream.write(datas);

=> "ABC" 를 한번에 모두 출력합니다.


write( byte[] b, int off, int len ) : b[off] 부터 len 개의 바이트를 출력 스트림으로 보냅니다.


OutputStream outputStream = new OutputStream("파일 경로");

byte[] datas = "ABC".getBytes();

outputStream.write(datas, 1,2);

 => "BC"만 출력


flush() 와 close() : 출력 스트림의 내부에는 작은 버퍼가 있습니다.

 => 데이터가 출력되기 전에 버퍼에 쌓여 있다가, 순서대로 출력합니다

flush()는 버퍼에 남아있는 데이터를 모두 출력시키고, 버퍼를 비우는 역할을 합니다.


더 이상 출력할 데이턱 없다면 flush()를 마지막에 호출해 버퍼에 남아있는 데이터가

모두 출력 되도록 해야 합니다.

OutputStream을 더 이상 사용하지 않는 다면 cose()를 호출해 사용했던 시스템 자원을 풀어줘야 합니다.

OutputStream os = new FileOutputStream("파일 경로");

byte[] datas = "ABC".getBytes();

os.write(datas);

os.flush();

os.close();

반응형