본문 바로가기

프로그래밍 언어/JAVA

JAVA 입문 - 문자 단위 스트림

지난 글 : [프로그래밍 언어/JAVA] - JAVA 입문 - 바이트 단위 스트림

 

Reader

문자 단위로 읽는 스트림 중 최상위 스트림이다. 아래 하위 클래스를 주로 사용한다.

아래와 같이 자료를 읽는 메서드를 제공한다.

Reader 중 가장 많이 사용하는 FileReader를 알아보자.

 

FileReader

FileReader의 생성자는 아래와 같다. FileInputStream과 마찬가지로 읽으려는 파일이 없으면 FileNotFoundException이 발생한다.

Reader 스트림을 활용하지 않고 바이트 단위로 문자를 읽을 때 문자가 어떻게 되는지 알아보자. 그러기 위해 지난 글에서 사용한 FileInputStream으로 자료를 읽어보자. 현재 프로젝트에 reader.txt 파일을 만들고 한글로 '안녕하세요'라고 적은 후 바이트 단위로 읽었을 때 어떻게 되는지 알아보자.

출력 결과

한글을 바이트 단위로 읽어 오니 글자를 알 수 없는 출력 결과가 나왔다. 따라서 문자를 입출력할 때는 문자 스트림을 사용해야 한다. 이제 FileReader로 reader.txt를 다시 읽어보자.

출력 결과

문자 스트림 FileReader로 읽으니 한글이 제대로 읽힌다. 이처럼 Reader 클래스는 문자를 처리할 때 사용하는 클래스다. 나머지 read(char[ ] buf) 메서드와 read(char[ ] buf, int off, int len) 메서드의 내용은 FileInputStream과 유사하다.

 

Writer

문자 단위 출력하는 스트림 중 최상위 스트림으로 아래 하위 클래스를 주로 사용한다.

아래처럼 자료를 읽는 메서드를 제공한다.

Write 스트림 중 가장 많이 사용하는 FileWriter 스트림 클래스로 자료를 출력해보자.

 

FileWriter

다른 스트림 클래스와 마찬가지로 생성자를 사용해 스트림을 생성한다. FileOutputStream과 마찬가지로 출력 파일이 존재하지 않으면 파일을 생성한다. 생성자는 아래와 같다.

Writer에서 제공하는 여러 가지 메서드와 FileWriter를 사용해 코드를 구현해보자.

출력 결과

이제 생성된 writer.txt 파일을 보면 아래와 같다.

 

참고 서적 : 자바 프로그래밍 입문 - 박은종

'프로그래밍 언어 > JAVA' 카테고리의 다른 글

JAVA 입문 - 직렬화  (0) 2022.06.19
JAVA 입문 - 보조 스트림  (0) 2022.06.18
JAVA 입문 - 바이트 단위 스트림  (0) 2022.06.15
JAVA 입문 - 표준 입출력  (0) 2022.06.14
JAVA 입문 - 자바 입출력과 스트림  (0) 2022.06.13