Java

[Java]입력과 출력 -part.2(bridge stream)

MoZZANG 2022. 3. 23. 18:35
키보드로 읽어서(바이트 단위로 읽음) 문자단위로 파일에 출력해보자
bridge stream을 이용해서 1바이트씩 읽은 데이터를 문자단위로 변환한다.

 

※ Java IO에서 한글이 깨지는 경우

  • 1byte씩 읽어서 한 문자씩 출력시 
  • 해결방법 : InputStreamReader bridge stream이용
  • -----------------------------------------------------------
  • 한 문자씩 읽어서 1byte로 출력시
  • 해결방법 : OutputStreamWriter bridge stream이용

※ 1byte씩 읽어서 1byte씩 출력하거나 한 문자씩 읽어서 한 문자씩 출력할 때는 한글이 깨지지 않는다.

 

 

▲ 바이트 기반을 문자기반으로 바꿔주는 클래스 InputStreamReader를 사용하면 입력스트림에서 한 문자씩 읽어서 프로그램으로 전달한다.

 

▲문자 기반 스트림 클래스인 FileWriter를 이용해서 프로그램에 있는 데이터를 한 문자씩 읽어서 파일로 출력한다.

 

 

▲ 출력방법은 동일하게 입력스트림클래스.read()로 데이터를 읽어서 문자 기반의 출력스트림인 fw로 write()를 하고 write()는 자동 flush()기능이 없으므로 flush()까지 해줘야한다.

 

또한 파일로 출력하기 때문에 파일로 flushing을 해준 뒤 안정성을 위해 노드스트림제거를 해주어야 하므로 close()메소드를 이용하여 닫아주자.