CODEDRAGON ㆍDevelopment/Java
문자 스트림의 특징
· 유니코드로 된 문자를 입·출력 하는 스트림입니다.
· 바이트 스트림에 추가하여 Reader와 Writer 클래스를 제공하는데, 이것은 2 바이트를 입출력 할 수 있는 문자 기반 스트림입니다.
· 바이트 스트림은 1바이트를 입출력하기 때문에 일반적으로 영문자로 구성된 파일, 동영상 파일, 음악 파일의 입출력 등에 적합한 스트림입니다.
· 문자 스트림은 2바이트를 입출력하기 때문에 세계 모든 나라의 언어로 구성된 파일을 입출력할 수 있습니다. 문자 데이터만 입·출력 가능합니다.
문자 스트림의 구조
문자 스트림은 Reader와 Writer로 나뉩니다.
Reader/Writer 클래스는 JAVA.IO 패키지에 포함되어 있는 추상 클래스입니다.
문자 스트림을 다루는 모든 클래스의 수퍼 클래스입니다.
문자 입력 스트림 |
Reader |
문자 출력 스트림 |
Writer |
바이트 스트림과 문자 스트림 차이
· 바이트 스트림의 데이터 송수신 특성
· 바이트 스트림을 이용하여 파일에 문자 저장시 문제점
· 문자 스트림은 해당 운영체제 기반 인코딩 방식을 지원
· 바이트 스트림과 문자 스트림 대응표
o 바이트 스트림의 데이터 송수신 특성
바이트 스트림은 데이터를 있는 그대로 송수신 하는 스트림입니다. 이 바이트 스트림을 이용하여 문자를 파일에 저장하는 것도 가능합니다. 물론 이렇게 저장된 데이터를 자바 프로그램을 이용해서 읽으면 문제되지 않지만 다른 프로그램을 이용해서 읽게될 경우 문제가 될 수 있습니다.
o 바이트 스트림을 이용하여 파일에 문자 저장시 문제점
운영체제 별로 고유의 문자표현방식이 존재하며 해당 운영체제에서 동작하는 프로그램은 해당 운영체제의 문자표현 방식을 그대로 따릅니다. 따라서 파일에 저장된 데이터는 해당 운영체제의 문자표현 방식으로 저장되어 있어야 합니다.
o 문자 스트림은 해당 운영체제 기반 인코딩 방식을 지원
· 문자 스트림은 해당 운영체제의 문자 인코딩 기준을 따라서 데이터 입출력을 수행합니다.
· 윈도우 운영체제에서는 윈도우 기반 문자 인코딩을 하여 파일 입출력을 하고 리눅스 운영체제에서는 리눅스 기반 문자 인코딩을 하여 파일 입출력을 수행합니다.
· 대부분의 문자 스트림은 바이트 스트림과 1대 1의 대응구조를 가지고 있습니다.
o 바이트 스트림과 문자 스트림 대응표
바이트 스트림 |
문자 스트림 |
InputStream |
Reader |
OutputStream |
Writer |
FileInputStream |
FileReader |
FileOutputStream |
FileWriter |
BufferedInputStream |
BufferedReader |
BufferedOutputStream |
BufferedWriter |
'Development > Java' 카테고리의 다른 글
RandomAccessFile, RandomAccessFile 생성자 (0) | 2018.12.11 |
---|---|
File 클래스의 주요 메서드, 분류별 File 클래스의 메소드- File 생성/수정/삭제 메소드, File 체크 메소드, File 권한 메소드 (0) | 2018.12.11 |
InputStream의 주요 메서드 (0) | 2018.12.11 |
Damon Thread(데몬 스레드), 데몬 스레드 예, setDaemon(), isDaemon() (0) | 2018.12.11 |
ReentrantLock과 Condition, 동기화 메소드 (0) | 2018.12.11 |