컴퓨터프로그래밍/JAVA

Java - 36.자바I/O개요

zelkova 2011. 8. 8. 13:31

자바 I/O란?
자바 I/O는 자바프로그램의 입력과 출력기능을 이르는 말이다. 모든 응용프로그램은 컴퓨터 메인 메모리에 올려져 CPU(Center Processing Unit, 중앙처리장치와)와의 커뮤니케이션을 통해 프로그램의 명령이 실행된다. 이때 응용프로그램이 CPU에 의해 실행되기 위해 필요한 데이터를 입력장치에서 메인 메모리로 가져오는 작업을 입력이라고 하고 반대로 메인 메모리에서 CPU에서 처리한 결과가 출력장치로 나가는 작업을 출력(Output)이라고 한다.

스트림이란?
스트림의 사전적 의미는 '흐르다'인데 컴퓨터 시스템 관점에서는 입,출력 시에 이동하는 데이터의 흐름을 의미한다. 다시말해, 메인 메모리에 적재되어 실행중인 응요프로그램과 입력 또는 출력으로 연결된 장치 사이에 이동하는 데이터의 흐름이라고 할 수 잇다.

자바에서는 응용프로그램과 연결되는 장치마다 고유한 스트림 제어방법을 라이브러리로 제공한다. 자바 응용프로그램과 연결되는 대표적인 장치로는 키보드, 모니터, 파일, 데이터베이스, 네트워크 등이 있다. 특히 키보드와 모니터는 가장 일반적으로 사용하는 입출력 장치로 키보드를 통한 입력을 표준 입력, 모니터를 통한 출력을 표준 출력이라고 하고, 일반적으로 표준 입출력에 기반한 프로그램을 콘솔 프로그램이라고 한다.

입력스트림
입력스트림은 다양한 입력장치로부터 응용프로그램으로 들어오는 데이터의 흐름을 총칭하여 의미한다. 입력장치로는 키보드(표준입력장치), 파일, 네트워크 등이 있다. 다음은 자바에서 입력 스트림을 지원하기 위해 제공되는 라이브러리들의 계층 구조도인데 각 라이브러리 객체마다 고유로 연결되는 장치들이 있기도 하지만 대부분은 연결된 입력장치와 무관하게 공용으로 사용할 수 있도록 표준화 되어있다.

입력 스트림은 크게 두 가지로 구분되는데 하나는 InputStream 계열이고, 나머지 하나는 Reader계열이다. 이 두 계열의 차이점은 입력장치에서 데이터를 가져오는 방식에 있다. InputStream계열의 라이브러리 객체를 사용하면 입력 데이터를 바이트(Byte)단위로 가져오는 반면에 Reader 계열은 유니코드 기반의 문자단위로 입력 데이터를 응용프로그램을 가져올 수 있다.

다음 블로그는 스트림들에 대해서 더욱더 자세히 알아보고 사용법에대해서 알아보도록 하겠다.

반응형