-
[Java] 입출력 개요IT/개발(자바, 서블릿, 스프링 등) 2020. 1. 29. 21:54
외부 데이터란 프로그램 외부에 존재하는 모든 데이터를 의미한다. 하드디스크상에 있는 파일이 될 수 있고 네트워크상에 존재하는 자원이 될 수도 있고, 메모리에 있는 자원이 될 수도 있습니다. 외부 데이터 타입이 무엇이든 자바는 외부 데이터를 읽거나 쓰기 작업 할 때 동일하게 처리한다.
자바에서 프로그램과 외부 데이터가 연결되는 길을 스트림(stream)이라고 부른다. 입력스트림과 출력스트림으로 분류하는 이유는 스트림이 단방향이기 때문이다. 데이터를 읽거나 출력하는 기능 중 하나만 처리할 수 있다.
입출력 API
Java SE API 중에서 java.io 패키지는 외부 데이터를 읽거나 외부로 데이터를 출력하는 기능을 가진 객체들이 있다.
java.io 패키지의 객체 이름을 살펴보면 ~InputStream 또는 ~Reader로 끝나는 객체를 볼 수 있다. 이러한 객체들은 외부 데이터를 읽어오는 기능을 가진 입력스트림이다. 객체 이름이 ~OutputStream 또는 ~Writer로 끝나는 객체는 외부로 데이터를 출력하는 기능을 가진 출력스트림이다.
InputStream과 OutputStream 계열은 1바이트 단위로 작업하고, Reader와 Writer 계열은 2바이트 단위로 작업한다.
자바 프로그램과 연결되는 외부 데이터의 타입이 무엇인지는 객체 이름에서 알 수 있다. 객체 이름에서 InputStream, Reader, OutputStream, Writer 단어를 빼고 남은 단어가 바로 외부 데이터 타입이다.
예를들어 java.io에 FileInputStream 객체를 살펴보자. InputStream 단어가 있으므로 외부 데이터를 1바이트씩 읽어오는 입력스트림인 것을 알 수 있다. 그 다음 InputStream을 제외하면 File이란 단어가 남는다. 파일과 연결되는 입력스트림으로 유추할 수 있다. ByteArrayOutputStream은 데이터가 바이트 배열에 출력됨을 알 수 있다.
'IT > 개발(자바, 서블릿, 스프링 등)' 카테고리의 다른 글
[Java] 자바의 타임존 이야기 (0) 2020.04.03 [Java] 기본 입출력 작업 (0) 2020.01.30 [Java] 컬렉션 Set 계열 (0) 2020.01.28 [Java] 컬렉션 Map 계열 (0) 2020.01.28 [Java] 컬렉션 개요 (0) 2020.01.27