1. BufferedReader와 BufferedWriter
- 버퍼를 이용해서 입출력의 효율을 높일 수 있도록 해주는 역할을 한다.
- 버퍼를 이용하면 입출력의 효율이 비교할 수 없을 정도로 좋아진다.
- BufferedReader의 readLine()을 사용하면 라인 단위로 읽는다.
- BufferedWriter의 newLine()을 사용하면 줄바꿈을 해준다.
1-1. BufferedReader와 BufferedWriter를 이해하기 위한 예제(1)
( 문장 끝 ';'이 포함된 구문만 출력되게 하였다. )
2. InputStreamReader와 OutputStreamWriter
- 바이트 기반 스트림을 문자 기반 스트림으로 연결시켜주는 역할을 한다.
- 바이트 기반 스트림의 데이터를 지정된 인코딩의 문자 데이터로 변환하는 작업을 수행한다.
- 아래는 InputStreamReader의 생성자/메서드를 설명한다.
(1) InputStreamReader(InputStream in)
: OS에서 사용하는 기본 인코딩의 문자로 변환하는 InputStreamReader를 생성한다.
(2) InputStreamReader(InputStream in, String encoding)
: 지정된 인코딩을 사용하는 InputStreamReader를 생성한다.
(3) String getEncoding()
: InputStreamReader의 인코딩을 알려준다.
- 아래는 OutputStreamWriter의 생성자/메서드를 설명한다.
(1) OutputStreamWriter(OutputStream in)
: OS에서 사용하는 기본 인코딩의 문자로 변환하는 OutputStreamWriter를 생성한다.
(2) OutputStreamWriter(OutputStream in, String encoding)
: 지정된 인코딩을 사용하는 OutputStreamWriter를 생성한다.
(3) String getEncoding()
: OutputStreamWriter의 인코딩을 알려준다.
( 만약 한글 윈도우에서 중국어로 작성된 파일을 읽을 때, InputStreamReader(InputStream in,
String encoding)를 이용해서 인코딩이 중국어로 되어 있다는 것을 지정해주어야 글자가
깨지지 않는다. )
( OutputStreamWriter 또한 마찬가지이다. )
( 시스템 속성에서 sun.jnu.encoding의 값을 보면 OS에서 사용하는 인코딩의 종류를 알 수 있다. )
( 아래의 코드처럼 쓰면 된다. )
Properties prop = System.getProperties();
System.out.println(prop.get("sun.jnu.encoding"));
2-1. InputStreamReader와 OutputStreamWriter를 이해하기 위한 예제(1)
'자바 > 입출력 IO' 카테고리의 다른 글
표준 입출력과 File: RandomAccessFile (0) | 2022.04.27 |
---|---|
표준 입출력과 File: System(in, out, err) (0) | 2022.04.27 |
문자 기반 스트림: (File, Piped) Reader/Write (0) | 2022.04.26 |
FilterOutputStream의 자손: Print 스트림(보조 스트림) (0) | 2022.04.25 |
InputStream의 자손: Sequence 입력 스트림(보조 스트림) (0) | 2022.04.25 |