파일 입출력(I/O)

S·2023년 10월 22일

1. 입출력(I/O)

  • I/O란 Input(입력)과 Output(출력)의 약자이다.
  • 입출력(I/O)은 컴퓨터 내부 또는 외부 장치들 간의 데이터를 주고 받는 것을 말한다.

2. 스트림(Stream)

  • 데이터를 운반하는 통로이다.
  • 두 대상 사이를 연결하고 데이터를 넘겨주는 역할을 한다.
  • 단방향 통신을 한다.
  • 입출력을 하려면 입력 스트림, 출력 스트림 모두 필요.
  • FIFO(First In First Out)구조이다.
  • 바이트기반 스트림, 문자기반 스트림이 있다.

3. 스트림 종류

바이트기반 스트림문자기반 스트림
FileInputStream
FileOutputStream
FileReader
FileWriter
ByteArrayInputStream
ByteArrayOutputStream
CharArrayReader
CharArrayWriter

4. 보조스트림 - Buffer

  • 스트림의 기능을 보완하기 위한 보조 스트림이 제공
  • 보조스트림은 실제 데이터를 주고 받는 스트림이 아니다.
  • 스트림의 기능을 향상시키거나 새로운 기능을 추가할 수 있다.
  • 보조스트림만으로는 입출력 처리를 할 수 없고, 스트림을 먼저 생성한 다음에 이를 이용해서 보조스트림을 생성해야 한다.
// 먼저 기반스트림을 생성한다. FileInputStream은 InputStream의 자손 클래스이다.
FileInputStream fis = new FileInputStream("test.txt");

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

// 보조스트림인 BufferedInputStream으로 부터 데이터를 읽는다.
bis.read();
  • 실제 입력기능은 FileInputStream이 수행
  • 보조스트림인 BufferedinputStream 은 버퍼만을 제공

5. 보조스트림 종류

바이트기반 보조스트림문자기반 보조스트림
BuffererdInputStream
BuffererdOutputStream
BuffererdReader
BuffererdWriter
FilterInputStream
FilterOutputStream
FilterReader
FilterWriter

0개의 댓글