본문 바로가기
Dev/Java

08.IO(2) - 문자 기반 스트림, 버퍼(보조스트림)

by YoonYeoJin 2023. 7. 31.

지난 게시글에는 바이트 기반 스트림으로 1byte 단위의 데이터를 입출력 받는 것을 정리했다.

 

이번에는 문자기반 스트림으로 입출력을 받는 것에 대해 알아보려고 한다.

 

문자기반 스트림은 바이트 기반 스트림과 사용하는 방법에 있어서 차이가 없다.

다만, 바이트 기반 스트림은 한글을 입력했을 경우 깨지거나 정상적으로 입출력이 되지 않았지만, 문자 기반 스트림을 사용하면 한글도 문제 없이 출력을 할 수 있게 된다.

 

1. 문자 기반 스트림을 활용한 데이터 입출력

문자 기반 스트림을 사용해서 입출력을 받는 것도 위에서 언급한 바와 같이 순서는 동일하다.

그림과 같이 같은 방식으로 코드를 작성 후 생성 된 파일을 확인하면 한글도 문제 없이 출력 되는 것을 확인 할 수 있다.

 

입력을 받는 방법도 동일하다

 

그런데 이렇게 생성한 코드를 돌리게 되면 다음과 같은 결과가 출력 된다.

왜냐하면 저번 게시글에서도 적었지만 read() 메소드는 int 값을 출력하기 때문이다.

때문에 출력문에 강제 형변환을 해줘야 한다.

강제 형변환

 

강제 형변환 후 정상적으로 출력이 된 것을 확인할 수 있다.

 

2. 버퍼(보조스트림)

버퍼(buffer)는 보조스트림으로 기반스트림과 함께 사용해야 하며 기반 스트림만으로 부족했던 성능을 향상시켜주는 역할을 한다.

보조스트림을 사용하는 방법은 다음과 같다

 

다음과 같이 코드를 작성 후 결과를 확인하면 다음과 같다.

 

'Dev > Java' 카테고리의 다른 글

09-2.Collection(HashSet, HashMap)  (0) 2023.08.07
09-1.Collection(ArrayList)  (0) 2023.08.02
07.IO(1) - file, 바이트기반스트림  (0) 2023.07.30
06.StringTokenizer  (1) 2023.07.27
05-2. 다양한 함수(String 관련)  (0) 2023.07.25