JAVA/Exception , IO

보조스트림 : Data

Lune Bleue 2019. 12. 20. 00:09

1. DataInput/OutputStream

입력한 데이터를 해당 타입(자료형)에 맞게 저장하고 출력하는 보조스트림

(기본 자료형 별 데이터 읽고쓰기가 가능하도록 기능 제공)

각각의 자료형을 byte를 쪼개어 담고, 출력시에 해당 byte기준으로 꺼내서 반환한다.

 

ex)입력값: "안녕하세요"  10   2000  'g'
공간 크기:   참조주소값 1byte 4bye 2byte

이번에는 Try Catch With Resource 구문으로 입출력을 한번에 처리해 보았다.

에러처리문 중에 EOFException은 더 이상 읽어올 수 없을때 발생하는 오류로, catch에서 잡아서 파일을 다읽어오면 다음에 수행할 문장을 지정하고 싶을 때 사용 할 수있다. 있다.(메소드를 실행)

파일에 출력된 내용 
파일을 읽어와 출력

Data 보조 스트림은 write/read시 각 자료형에 맞는 크기를 할당하기 때문에 쓰고 읽을때 자료형에 맞는 메소드를 사용 해야 한다.

boolean writeBoolean() readBoolean()
byte writeByte() readByte()
short writeShort() readShort()
int writeInt() readInt()
long writeLong() readLong()
float writeFloat() readFloat()
double writeDouble() readDouble()
char writeChar() readChar()
String writeUTF() readUTF()

또한 파일에 출력한 순서대로 읽어오지 않으면 파일을 읽어오는 것을 멈춘다.(EOF익셉션 발생)

 

순서를 따지기 때문에 반복되는 패턴이 있을 경우 반복문으로도 출력 가능하다.

위 코드는 문자열, 인트 문자 라는 반복 구조가 있기때문에, 반복문을 사용해서 출력이 가능하다.

 

또한 while문의 조건이 true라 무한히 돌지만  더이상 읽어올 값이 없어서 EOF익셉션이 발생했다.

 

자료형의 byte 만큼의 공간을 사용해 저장하기 때문에 문자 기반인 Reader와 Writer사용시 오류가 발생한다.