I/O

이재연·2021년 3월 4일
0

Java Basic

목록 보기
13/15

스트림 (Stream)

단방향이다. 입력 스트림과 출력 스트림을 따로 사용해야 한다.
먼저 보낸 데이터가 먼저 도착하는 FIFO(First In First Out)구조이다.

버퍼 (Buffer)

임시 저장장치.

문자를 한번에 전달하기 때문에 성능이 향상될 수 있다.
매번 입력 API 호출이 일어나는 스트림 방식보다 호출 횟수가 적어지기 때문

채널 (Channel)

양방향 통로이다. 입력과 출력이 하나의 채널에서 이루어진다.
데이터를 주고 받을 때 버퍼를 사용한다.

InputStream과 OutputStream

바이트 기반 스트림의 최상위 클래스이다.

  • InputStream

int read() : 한 바이트를 읽어서 int로 반환한다.

int read(byte[] b) : 읽은 바이트를 b에 저장하고 읽은 수를 반환한다.

void close() : InputStream을 닫는다.

  • OutputStream

void write(int b) : b의 하위 바이트를 출력한다.

void write(byte[] b) : b의 버퍼의 내용을 출력한다.

void flush() : 버퍼에 있는 모든 내용을 출력한다.

void close() : OuputStream을 닫는다.

Byte와 Character 스트림

  • Byte Stream

binary 데이터를 전송하는 스트림이다.

입출력의 단위가 1 byte이다.

InputStream과 OutputStream이 최상위 클래스이다.

출처 : http://www.btechsmartclass.com/java/java-byte-stream.html

  • Character Stream

문자 데이터를 전송하는 스트림이다.

2 byte 단위로 처리한다.

Reader와 Witer가 최상위 클래스이다.

출처 : http://www.btechsmartclass.com/java/java-character-stream.html

표준 스트림

콘솔에서의 입출력을 도와준다.

  • System.in

콘솔에서 데이터를 입력받는다.

  • System.out

콘솔로 데이터를 출력한다.

  • System.err

콘솔로 데이터를 출력한다.

System.out과 다르게 버퍼를 사용하지 않고 바로 출력한다.

파일 읽고 쓰기

  • byte Stream 사용
FileInputStream fis = new FileInputStream("D:/file.jpg");
FileOutputStream fos = new FileOutputStream("D:/file.jpg");
  • Character Stream 사용
FiileReader fr = new FileReader("D:/file.txt");
FileWriter fw = new FileWriter("D:/file.txt");

0개의 댓글