
1. 입출력(I/O)이란?
입력(Input)과 출력(Output)을 뜻한다. 컴퓨터에 입력하는 것은 Input이며, 컴퓨터가 어떤 것을 출력하는 것은 Output이다.
앞에서 살펴본 System.out.println("Hello, World!"); 구문이 바로 Output이다.
(1) Input : 파일 데이터를 읽는다. 키보드의 데이터를 읽는다. 네트워크상의 데이터를 읽는다(전송).
(2) Output : 파일에 데이터를 쓴다. 모니터에 데이터를 쓴다(출력). 네트워크상에 데이터를 쓴다(전송).
2. Java에서의 파일 입출력 API
(1) InputStream : 1byte 단위 입력 API. 이미지, 동영상 등의 데이터에 주로 사용.
(2) OutputStream : 1byte 단위 출력 API. 이미지, 동영상 등의 데이터에 주로 사용.
(3) Reader : 2byte 단위 입력 API. 문자열에 주로 사용.
(4) Writer : 2byte 단위 출력 API. 문자열에 주로 사용.
(5) DataInputStream / DataOutputStream
(6) BufferedReader / BufferedWriter
(7) PrintWriter
cf. 스트림(Stream)이란?
스트림을 가장 쉽게 이해하려면 수도꼭지를 생각하면 된다. 수도꼭지를 틀면 물이 나오고 수도꼭지를 잠그면 물이 나오지 않는다. A라는 곳에서부터 B라는 곳까지 수도관이 연결되어 있고 A에서 계속 물을 보낸다면 B에서 수도꼭지를 틀때마다 물이 나오게 될 것이다. 여기서 스트림은 A수도관에서 B수도관으로 이동하는 물의 흐름이라고 할 수 있다.
프로그래밍에서는 다음과 같은 것들을 스트림이라고 할 수 있다.
- 파일 데이터 (파일은 그 시작과 끝이 있는 데이터의 스트림이다.)
- HTTP 응답 데이터 (브라우저가 요청하고 서버가 응답하는 HTTP 응답 데이터도 스트림이다.)
- 키보드 입력 (사용자가 키보드로 입력하는 문자열은 스트림이다.)
'Archive > Java' 카테고리의 다른 글
| [자바] GUI (0) | 2021.06.02 |
|---|---|
| [자바] Collection (0) | 2021.05.26 |
| [자바] 예외(Exception) 처리 (0) | 2021.05.26 |
| [자바] API(Application Programming Interface) (0) | 2021.05.26 |
| [자바] 패턴을 통한 객체지향 언어의 이해 (0) | 2021.05.26 |