-
Java - Input과 Output(I/O)Java/java study 2022. 3. 27. 23:13728x90반응형
Input과 Output
- 스트림(Stream) / 버퍼(Buffer) / 채널(Channel) 기반의 I/O
- InputStream과 OutputStream
- Byte와 Character 스트림
- 표준 스트림(System.in, System.out, System.err)
- 파일 읽고 쓰기
I/O(Input/Output)
I/O 란?
I/O란 Input과 Output의 약자로 입력과 출력, 간단히 입출력이라 한다. I/O를 이용하여 시스템은 컴퓨터 내부 또는 외부 장치와 프로그램간의 데이터를 주고 받는 것을 말한다.
스트림(stream)
- 스트림이란 데이터를 운반하는데 사용되는 연결 통로이다.
- 자바에서 데이터를 전달하고자 할 때, 두 대상을 연결하고 데이터를 전송할 수 있는
통로가 필요한데 이것을 스트림(stream)이라 한다. - 람다와 스트림에서 얘기하는 스트림과 같은 용어를 사용하지만, 다른 개념이다.
- 스트림은 단방향통신만 가능하다.
- 하나의 스트림으로 입력과 출력을 동시에 처리할 수 없다.
(입력을 위한 입력 스트림, 출력을 위한 출력 스트림 2개가 필요) - Queue와 같은 FIFO 구조로 되어있다.
버퍼(Buffer)
- 데이터를 임시 저장하는 공간을 의미
- 바이트 배열을 사용하여 일정량의 데이터 크기만큼 모아서 전송
- 시스템 콜의 횟수가 줄어들어 성능상 이점이 있다.
채널(Channel)
- 채널은 스트림과 달리 양방향으로 입력과 출력이 가능하다.
- 비동기적으로 입출력이 가능
InputStream과 OutputStream
- 바이트 기반 스트림의 최상위 클래스인 추상 클래스
- 모든 byteStrean의 조상
표준 입출력
- System.in : 표준 입력 스트림, InputStream
- System.out : 표준 출력 스트림, PrintStream
- System.err : 표준 오류 스트림, PrintStream
참고 사이트
728x90반응형'Java > java study' 카테고리의 다른 글
Java - 람다식 (0) 2022.04.10 Java - 제네릭(Generics) (0) 2022.04.03 Java - 애노테이션(annotation) (0) 2022.03.06 Java - enum이란 (0) 2022.02.27 Java - Thread (0) 2022.02.20