Code, Study/JAVA

Java_입출력 I/O 1.입출력

Chaniusss 2023. 10. 16. 22:54

<자바의정석 Chapter 15 정리>

 

1. 입출력 이란?

- I/O란 Input과 Output의 약자

 

2. 스트림(stream)

- 다른 쪽으로 데이터를 전달, 연결/전송을 위한 스트림

- 스트림 : 데이터를 운반하는데 사용되는 연결통로

- 단방향통신만 가능 /

입력을 위한 입력스트림(Input stream) /

출력을 위한 출력스트림(output stream) 2개 필요

 

3. 바이트기반 스트림 - InputStream, OutputStream

- 스트림은 바이트단위로 데이터 전송

입력스트림 출력스트림 대상
FileInputStream FileOutputStream 파일
ByteArrayInputStream ByteOutputStream 메모리 byte배열
PipedInputStream PipedOutputStream 프로세스(프로세스간 통신)
AudioInputStream AudioOutputStream 오디오장치

 

- 모두 InputStream, OutputStream의 자손들 / java.io패키지를 통해

메소드

InputStream OutputStream
abstract int read() abstract void write(int b)
int read(byte[] b) void write(byte[] b)
int read(byte[] b, int off, int len) void write(byte[] b, int off, int len)

- abstract int read() / abstract void write(int b) : 추상메서드로 정의, 상황에 알맞게 구현

 

4. 보조 스트림

- 데이터 입출력 기능X, 스트림의 기능 향상, 새로운 기능 추가

- 스트림을 먼저 생성 -> 보조 스트림을 생성

//1. 기반 스트림을 생성
FileInputStream fis = new FileInputStream("text.txt");

//2. 기반 스트림을 이용해서 보조 스트림 생성
BufferedInputStream bis = new BufferedInputStream(fis);

//3. 보조스트림인 BufferedInputStream으로부터 데이터를 읽는다
bis.read();

-Filter / Buffered / Data / Sequence / LineNumber / Object / Print / Pushback ....