문자 스트림의 특징, 문자 스트림의 구조, 바이트 스트림과 문자 스트림 차이-바이트 스트림의 데이터 송수신 특성, 바이트 스트림을 이용하여 파일에 문자 저장시 문제점, 문자 스트림은 해..

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