티스토리 뷰

Java

Java(문자 기반 스트림)

yoooon1212 2024. 5. 19. 18:56
자바 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 와 기능 확장

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함