[Java] 입출력

Bam·2024년 3월 21일
0

Java

목록 보기
87/98
post-thumbnail

입출력 스트림

키보드, 마우스 등을 이용해 데이터를 넣는 것을 입력, 모니터로 데이터가 표시되거나 다른 프로그램으로 전송되어 나가는 것을 출력이라고 합니다. 자바에서는 이런 입출력스트림(Stream)을 통해서 조작합니다. 스트림이라는 이름이 붙은 이유는 데이터가 출발지에서 흘러서(입력) 프로그램으로 나오고, 프로그램에서 가공된 데이터가 도착지로 흘러서(출력)가는 데이터 흐름때문에 이러한 이름이 붙게 되었습니다.

이전까지 다루던 내용이 Stream API라서 혼동하실 수도 있으실텐데요. 기존에 배웠던 스트림과는 다른 개념입니다.
Stream API의 스트림은 컬렉션, 배열 등에서 요소를 하나씩 간편하게 처리하기 위한 기능이고, 지금은 입출력의 흐름을 다룬다는 의미의 스트림입니다.

이때 프로그램에 데이터가 들어오는 것을 입력 스트림, 프로그램에서 데이터가 나가는 것을 출력 스트림이라고 부릅니다.

한 프로그램에서 다른 프로그램과 데이터를 송수신하려면 양측 모두 입출력 스트림을 가지고 있어야 서로 교환할 수 있습니다.

입출력 스트림을 이용할 때 어떤 데이터를 사용하냐에 따라서 다시 두 종류로 나뉩니다.

바이트 스트림

바이트 스트림은 그림, 동영상, 텍스트 등 모든 종류의 데이터 입출력에 사용합니다.

java.io 패키지에서 입출력 스트림을 제공하고 있는데요. 바이트 스트림은 입력 스트림으로 InputStream, 출력 스트림으로 OutputStream 최상위 클래스를 제공하고 있습니다. 이 클래스를 상속하는 자손 클래스들은 최상위 클래스의 이름은 접미사로 가져 XxxxxInputStream, XxxxxOutputStream과 같은 형태로 제공되고 있습니다.

문자 스트림

문자 스트림텍스트만 입출력이 가능한 입출력 스트림입니다.

마찬가지로 java.io패키지에서 제공하며 입력 스트림으로 Reader, 출력 스트림으로 Writer 최상위 클래스를 지원하고 있습니다. 자손 클래스 또한 XxxxxReader, XxxxxWriter라는 이름으로 제공하고 있습니다.

0개의 댓글