문자 단위 입출력 스트림
Reader
- 문자 단위 입력 스트림 최상위 추상 클래스
- 많은 추상 메서드가 선언되어 있고 이를 하위 스트림이 상속받아 구현함
- 주요 하위 클래스
클래스 | 설명 |
FileReader | 파일에서 문자 단위로 읽는 스트림 클래스입니다. |
InputStreamReader | 바이트 단위로 읽은 자료를 문자로 변환해주는 보조 스트림 클래스 입니다. |
BufferedReader | 문자로 읽을 때 배열을 제공하여 한꺼번에 읽을 수 있는 기능을 제공하는 보조 스트림입니다. |
- 주요 메서드
메서드 | 설명 |
int read() | 파일로부터 한 문자를 읽습니다. 읽은 문자를 반환합니다. |
int read(char[] buf) | 파일로부터 buf 배열에 문자를 읽습니다. |
int read(char[] buf, int off, int len) | 파일로부터 buf 배열의 off 위치로부터 len 개수만큼의 문자를 읽습니다. |
void close() | 입력 스트림과 연결된 대상 리소스를 닫습니다. |
FileReader - 파일에서 문자 읽기 -
- 한글 문자 파일 하나 만들어 주고

- 바이트 단위로 읽어왔던 FileInputStream으로 읽어 보기 Test
한글은 다 깨지는 거 확인
- 문자 단위 입출력 스트림 FileReader로 읽어 보기 Test
한글 문자 잘 출력됨을 확인!
Writer
- 문자 단위 출력 스트림 최상위 추상 클래스
- 많은 추상 메서드가 선언되어 있고 이를 하위 스트림이 상속받아 구현함
- 주요 하위 클래스
클래스 | 설명 |
FileWriter | 파일에서 문자 단위로 출력하는 스트림 클래스입니다. |
OutputStreamWriter | 바이트 단위의 자료를 문자로 변환해 출력해주는 보조 스트림 클래스 입니다. |
BufferedWriter | 문자로 쓸 때 배열을 제공하여 한꺼번에 쓸 수 있는 기능을 제공하는 보조 스트림입니다. |
- 주요 메서드
메서드 | 설명 |
int write(int c) | 한 문자를 파일에 출력합니다. |
int write(char[] buf) | 문자 배열 buf의 내용을 출력합니다. |
int write(char[] buf, int off, int len) | 문자 배열 buf의 off위치에서부터 len 개수의 문자를 출력합니다. |
int write(String str) | 문자열 str을 출력합니다. |
int write(String str, int off, int len) | 문자열 str의 off번째 문자로부터 len 개수만큼 출력합니다. |
int flush() | 출력하기 전에 자료가 있는 공간(출력 버퍼)을 비워 출력하도록 합니다 |
void close() | 스트림과 연결된 리소스를 닫습니다. 출력 버퍼도 비워집니다. |
FileWriter - 파일에 문자 쓰기
- 문자배열 buffer를 가지고 함수 사용 테스트

-- 파일 잘 생성되어서 입력 잘 되었는지 Test
A / BCDEFG / 안녕하세요. 잘 써지네요 / CD / 65
5개 출력 값 확인
문자를 핸들링 해주는 Reader와 Writer 학습!
review
문자 단위 입출력 스트림 ( Reader , Writer )
최상위 추상 클래스로 파일 입출력하는 FileReader와 FileWriter로 실습
파일에 한 문자를 읽거나 써주고, 문자배열 단위로 읽거나 써주는 것이 가능하다.
바로 전에 배웠던 byte단위 IO 스트림의 대표로 실습해보았던
FileInputStream / FileOutputStream 과 이름도 사용법도 비슷하였다.
다만 byte 단위로 핸들링하는 것인지 -( 한글은 바이트가 아니라 다 깨져서 보였다. )
문자 단위로 핸들링하는 것인지가 -( 한글 정상 출력 )
가장 큰 차이점이었다.
하나씩 입출력하는것과 배열 단위로 입출력하는 것
배열에서도 지정 위치부터 지정 개수만큼 입출력하는 것
비슷한 점이 많아서 사용하는데 큰 어려움은 없었다.
'JAVA 웹 개발 패키지 - 패스트캠퍼스 > Chapter6' 카테고리의 다른 글
직렬화 (serialization) (0) | 2022.01.25 |
---|---|
여러가지 보조 스트림 클래스들( InputStreamReader, BufferedInputStream, DataInputStream ) (0) | 2022.01.24 |
바이트 단위 입출력 스트림 ( InputStream / OutputStream ) (0) | 2022.01.23 |
I/O 스트림의 구분 , 표준 입출력 스트림 (0) | 2022.01.22 |
사용자 정의 예외 클래스, 로그 남기기 (0) | 2022.01.22 |