Java

[Java]입력과 출력 -part.6(Data InOutStream)

MoZZANG 2022. 3. 27. 13:07
1. 메모리 -> 파일

 

각 자료형을 인코딩(필터 사용)해서 파일로 저장할 것이다. 따라서 Data source는 메모리이며 Data destination은 file이 되는 것이므로 입력스트림은 불필요하며 출력스트림만 있으면 된다.

 

▲ 다양한 자료형으로 데이터 소스를 만든다.

 

 

▲파일형식으로 출력할 것으이므로 FileOutputStream을 이용해 출력용 노드스트림을 만들어준 후 필터스트림인

DataOutputstream을 이용해 인코딩을 해준다.

 

 

▲ 자료형마다 출력용 메소드가 달리 존재하므로 자료형에 맞게 메소드를 이용해 출력한다.

 

 

 

 

 

 

 

 

2. 파일 -> 메모리

 

이번에는 파일에 저장된 데이터값을 불러와 각 자료형 값을 디코딩(필터링(해서 각 자료형 변수에 저장해보자

그리고 확인차 모니터에도 출력하자

 

여기저 주의할 점은 위에서 우리가 DataOutputStream으로 필터링을 했다. 즉 암호화를 했다. 이렇게 DataOutputStream으로 저장한 데이터는 아래와 같이 우리가 알아볼 수 없게 저장된다.

 

따라서 DataInputStream클래스를 사용해서 읽어야 제대로 읽어오며 읽어올때는 저장된 자료형 순서대로 읽어와야 한다.

 

 

Data source는 파일이며 Data destination은 메모리이므로 이번에는 출력용 스트림이 필요없다.

 

▲ 입력스트림 생성

 

▲출력시에는 반드시 저장된 자료형 순서대로 읽어와야 한다.

 

 

▲ 더 이상 읽어올 데이터가 없는데도 데이터를 읽을려고 한다면 EOException이 발생한다. 이는 Run-time error의 한 종류이다.