2013년 1월 17일 목요일

[Java] 파일 입출력

스트림이란? 데이터의 흐름이다.
왜 필요하나? 어떤 목적지(파일 등)에서 데이터를 읽어오기 위한 통로(배관)과 같은 것이 필요하기 때문이다. 따라서 스트림은 데이터가 흐를 수 있도록, 즉 전달 할 수 있도록 해주는 통로 역할을 해준다.

System클래스 안에는 이 스트림을 가질 수 있도록 정의되어 있는데 in과 out이라는 멤버객체가 그것이다.

그러나 스트림의 종류는 다양하다. 왜 그럴까?
그만큼 스트림을 지나는 데이터의 내용이 다양하기 때문이다.

대표적으로 바이트와 문자 스트림에 대해 알아보자.

바이트 스트림
바이트 스트림의 최상위 클래스는 InputStream / OutputStream 이다.(노드 스트림이라고도 한다.) 가장 기본적인 스트림이라고 할 수 있는데 당연히 바이트의 흐름만 통과할 수 있다. 이 클래스를 상속하는 클래스가 다양하다. (예: FileInputStream / FileOutputStream ,,,)

문자 스트림
문자 스트림의 최상위 클래스는 Reader / Writer 이다. 문자의 흐름을 읽거나 쓸 수 있다. 이 클래스를 상속하는 클래스가 다양하다. (예: FileReader / FileWriter ,,, )

이 스트림이 최상위 클래스이기 때문에 이를 상속하는 모든 클래스들의 이름을 잘 보면 비슷하게 구성되어 있다는 것을 잘 알 수 있다. 그 연관성이 있으니까 외우기가 어렵지는 않을 것이다.

그렇다면 파일 입출력의 과정은 어떻게 될까?
파일을 열고, 읽고, 닫거나
파일을 열고, 쓰고, 닫으면 끝

댓글 없음:

댓글 쓰기