티스토리 뷰
자바 I/O에서 문자 기반 스트림의 사용 이유 자바의 입출력(I/O) 시스템은 바이트 기반 스트림과 문자 기반 스트림 두 가지 유형의 스트림을 제공한다. 문자 기반 스트림은 텍스트 데이터(입출력 단위 : 문자)를 처리할 때 사용된다. |
1. 문자 인코딩 처리: 자동으로 플랫폼의 기본 문자 인코딩을 사용하여 문자 데이터를 올바르게 인코딩하거나 디코딩한다. 이는 다양한 문자 인코딩을 처리하면서 발생할 수 있는 복잡성을 추상화하고, 문자 데이터를 쉽게 처리할 수 있도록 돕는다.
2. 국제화 지원: 유니코드와 같은 다국어 지원을 통해 전 세계적으로 소프트웨어를 배포할 때 필수적이다. 문자 기반 스트림을 사용하면 다양한 언어의 문자 처리가 간편해진다. 자바 플랫폼은 유니코드를 사용해서 문자를 저장한다. 문자 스트림은 자동적으로 이 유니코드 문자를 지역 문자 집합으로 변환한다.
3. 가독성 및 편의성 : 문자 데이터를 읽고 쓰는 코드를 작성할 때, 문자 기반 스트림을 사용하면 바이트를 직접 처리하는 것보다 더 직관적이고 오류가 적은 코드를 작성할 수 있다.
문자 기반 스트림의 기본 클래스
Reader : 문자 입력 스트림의 모든 클래스의 상위 클래스이다.
Writer : 문자 출력 스트림의 모든 클래스의 상위 클래스이다.
문자 인코딩에 따른 바이트 수
- ASCII: 이 인코딩에서는 모든 문자가 하나의 바이트로 표현됩니다.
- UTF-8: 이 인코딩은 가변 길이 문자 인코딩 방식을 사용하며, 문자에 따라 1바이트에서 4바이트까지 사용할 수 있습니다. 영문자 및 숫자는 일반적으로 1바이트를 사용하고, 한글이나 다른 유니코드 문자는 2바이트 이상을 사용할 수 있습니다.
- UTF-16: 이 인코딩에서는 대부분의 문자가 2바이트를 사용하며, 일부 보충 문자는 4바이트를 사용합니다.
- ISO-8859-1: 이 인코딩에서는 모든 문자가 1바이트로 표현됩니다.
InputStreamReader isr = new InputStreamReader(System.in, "UTF-8");
예시1)
InputStreamReader : 한 바이트씩 읽는 것이 아니라 한 번에 하나의 문자를 읽는다.
읽는 바이트 수는 사용되는 문자 인코딩에 따라 달라진다.
예시2)
BufferedReader
예시3)
BufferedReader 와 기능 확장
'Java' 카테고리의 다른 글
Java(File copy(문자/ 바이트 기반 입출력(ZIP 파일로 압축)) 및 로그와 파일 저장) (0) | 2024.05.21 |
---|---|
Java(파일 입/출력 스트림(문자 기반) 및 정규 표현식) (0) | 2024.05.20 |
Java(파일 출력 스트림(바이트 기반) 및 파일 copy(바이트 기반 입출력)) (0) | 2024.05.19 |
Java(파일 입력 스트림(바이트 기반)) (0) | 2024.05.19 |
Java(I/O 개론) (0) | 2024.05.19 |