Stream의 BufferdOutputStream, BufferdInputStream
[Stream Class ]
Stream 클래스는 크게 4가지로 나눈다
이중 본 내용에서는 BufferdOutputStream, BufferdInputStream에 대해서 알아보도록 하자
하지만 BufferdOutputStream은 printOutputStream을 것을 더 추천한다.
BufferdOutputStream은 read만 사용할 수 있지만
printOutputStream은 read 뿐만 아니라, print 까지 사용할 수 있다.
[ 알고 갑시다 ]
** OutPutStream - ByteStream들 중에서 출력에 관련되 메소드 이름을 소유한 추상클래스
void close () : 스트림 닫기
void flush() : 현재 버퍼에 남아있는 내용 모두 출력
void write(int r) : r을 기록
void write(byte[] b ) : b의 모든 내용을 기록
void write(byte [] b , int offset, int length) : b 배열에서 offset 부터 length만큼 기록
** InPutStream - ByteStream들의 입력에 관련된 메소드 이름을 소유한 추상 클래스
int available() : 스트림에서 읽을 수 있는 크기를 바이트 단위로 리턴
int read() : 하나의 바이트를 읽어서 정수로 리턴 못 읽으면 음수를 리턴
int read(byte[] b ) : b배열의 크기만큼을 읽어서 b에 저장하고 읽은 바이트 수를 리턴 데이터를 못 읽으면 0보다 작거나 같은 수를 리턴
int read(byte [] b , int offset, int length) : b배열에 offset 부터 length만큼을 읽어서 저장하고 읽은 개수를 리턴 데이터를 못 읽으면 0보다 작거나 같은 수를 리턴
**BufferdOutputStream - > PrintStream
2개의 스트림을 모아서 처리를 합니다.
출력을 할 때 마다 운영체제의 native method를 호출하지 않고 모아서 호출하기 때문에 호출 횟수를 줄여서 출력을 효율적으로 할 수 있습니다.
**BufferdOutputStream - 한바이트씩 출력하지 않고 바이트배열(버퍼)를 이용해서 한번에 출력
[생성자]
BufferdOutputStream(OutputStream out) :OutputStream을 출력소스로하고, 크기를 지정하지 않음으로 8192byte크기의 버퍼를 갖게된다.
BufferdOutputStream(OutPutStream out, int size) : OutStream 인스턴스를 출력소르로하며 지정된 크기의 버퍼를 갖는BufferdOutputStream 인스턴스를 생성한다 .
마지막 출력부분이 쓰이지 못하고 BufferedOutputStream의 버퍼에 남아 있는 채로 프로그램이 종료될수 있습니다.
그래서 flsush()나 Close()를 호출해서 마지막에 버퍼에 있는 모든 내용이 출력소스에 출력되도록해야합니다
**PrintStream
[생성자]
PrintStream(String fileName) : 파일 경로를 가지고 생성
PrintStream(OutPutStream out ) : OutPutStream 객체를 가지고 생성
[메소드]
print(), printf(), println() 메소드를 제공 등....
[코드]
void flush() : 현재 버퍼에 남아있는 내용 모두 출력
[결과]
**BufferdInputStream - 한바이트씩 입력하지 않고 바이트배열(버퍼)를 이용해 한번에 입력
[생성자]
BufferedInputStream(InputStream in, int size) : InPutStream 인스턴스를 입력소스로하며 버퍼의 크기를 설정해서 객체를 생성
BufferedInputStream(InputStream in) : InputStream 인스턴스를 입력소스로 하며 버퍼의 크기를 지정해주지 않으면 8192로 합니다.
단, InputStream은 추상 클래스여서 직접 넣을수가 없으므로 다른 InPutStream을 대입받아서 생성해야합니다.
[결과]
'Java > 자바 공부' 카테고리의 다른 글
1-4) ChractorStream의 Writed와 Read (0) | 2018.01.17 |
---|---|
split이용한 배열의 마지막 값을 가져오는 방법 (0) | 2018.01.17 |
1-3) ByteStream의 파일복사 방법 (0) | 2018.01.17 |
1-1)Byte Stream에 대한 정의 및 메소드 설명 (0) | 2018.01.17 |
JTable (0) | 2018.01.16 |