04. 바이트 스트림 : 바이트 단위 IO 클래스
java.io 패키지에 있는 클래스 중에서 바이트 스트림은 다양한 입출력 프로그램에서 사용된다. 모든 데이터는 바이트 단위로 구성되어 있기 때문이다. 하지만, 많은 개발자들이 바이트 스트림 클래스의 사용 방법에 대해 어려워한다. 이는 바이트 스트림 클래스의 사용 원리를 이해하지 못하기 때문이다.
java.io 패키지에서 클래스는 객체를 재사용하는 좋은 예이다. java.io 패키지의 클래스를 조합해서 다양한 방법으로 사용할 수 있기 때문이다. java.io 패키지의 바이트 스트림은 네트워크 프로그래밍을 할 경우에도 사용하며 JDBC에서 대용량 바이너리 파일을 데이터베이스에 저장하거나 읽어 들이고자 할 경우에도 사용한다.
XML 프로그래밍에서는 XML 문서를 읽어 들이거나 XML 문서를 출력할 때 java.io 패키지의 바이트 스트림을 사용하기도 한다. 즉, java.io 패키지의 바이트 스트림은 입출력과 관련된 곳이라면 항상 사용된다고 생각해도 과언이 아니다.
어떤 대상으로부터 읽고 쓰든지 간에 java.io 패키지의 사용 방법은 항상 동일하다. 그리고 java.io 패키지의 클래스는 객체지향적으로 잘 만들어졌다. 물론, java.io 패키지를 잘 사용하기 위한 전제는 객체지향 프로그래밍 방법에 대한 확실한 이해다.
01. File 클래스
영어권의 경우 1byte로 모든 글자를 표현할 수 있지만, 한국, 중국, 일본 등은 1byte로 모든 글자를 표현할 수 없다. 따라서 한국, 일본, 중국등에서 사용되는 글자를 표현하려면 2byte가 필요하며 이러한 지역을 2byte 문화권이라 한다.
디렉토리 역시 파일로써 취급된다.
- 자바를 만든 썬 마이크로시스템즈는 유닉스 계열 운영체제를 만드는 회사다. 그리고 유닉스 시스템은 디렉토리도 파일로 취급한다. 다만, 파일이나 디렉토리를 담아둘 수 있는 특수한 용도의 파일로 취급하는 것이 다를 뿐이다.
출처 : 김성박 송지훈 공저, 『 자바 IO & NIO 네트워크 프로그래밍』, 한빛미디어(2004.9.30), 4장 인용.