JAVA/Exception , IO

FileReader/Writer

Lune Bleue 2019. 12. 19. 01:06

문자 기반인 Reader와 Writer를 보자

문자기반인 Reader와 Writer는 2byte씩 저장하고 읽어 온다.

저장되는 방식을 제외한 형식은 OutputStream에서 보았던것과 같다.  

trycatch문을 try catch with resource 문으로 변경해 본다(inputStream/OutputStream/Reader 도 형식은 동일하다)

 

형식은 try(입/출력 스트림){ }catch(익셉션명 변수명){ } 이다.

자동으로 close() 를 해주기 때문에  finally문을 생략해도 되게 되었다.

 

 

위의 Writer를  실행하면 파일에 저장되는 값이다.

 

다음은 Reader를 보자

여기서도 .read()의 마지막의 반환 값은 -1 이지만 문제는 파일크기가 파일 내의 문서의 길이가 아니라는 것이다.

보다시피 파일 사이즈의 크기보다 빨리 읽어서 -1이 계속 반환 되는 것을 볼 수 있다. 저것을 char형으로 바꿔서 읽어보자

 

while문으로 돌려보았다.

글자가 깨지지 않고 잘 나오는 것을 볼 수 있다.