입출력

soob·2021년 3월 21일
0

생존 java

목록 보기
5/6

1. 스트림(stream)이란

  • 데이터를 운반하는데 사용하는 연결통로
  • 스트림은 단방향통신만 가능하기 때문에 하나의 스트림으로 입력과 출력을 동시에 할 수 없다.
  • 스트림은 먼저 보낸 데이터를 먼저 받게 되어 있으며 중간에 건너뜀 없이 연속적으로 데이터를 주고받는다.

2. 바이트 기반 스트림 (InputStream, OutputStream)

  • 스트림은 바이트단위로 데이터를 전송
  • 종류
    • 파일
    • 메모리 (byte배열)
      • 메모리에 데이터를 저장. 주로 다른 곳에 입출력하기 전에 데이터를 임시로 바이트배열에 담아서 변환 등의 작업을 하는데 사용된다.
      • 바이트배열은 자동으로 가비지컬렉터에 의해 처리되므로 close()를 이용해, 스트림을 닫지 않아도 된다.
      • 한 번에 1바이트씩 밖에 처리하지 못해 작업효울이 떨어진다.
      • 그러므로 배열을 사용해 입출력 작업을 효율적으로 하도록 한다.
    • 프로세스 (프로세스간 통신)
    • 오디오 장치
  • 모두 InputStream 또는 OutputStream의 자손들이며, 각각 읽고 쓰는데 필요한 추앗메서드를 구현해 놓았다.

3. 보조 스트림

  • 스트림의 기능을 보완하기 위한 스트림
  • 스트림을 먼저 생성한 다음에 이를 이용해서 보조스트림을 생성
  • 대표적으로 BufferedInputStream, BufferedOutputStream이 있다.
  • 보조 스트림의 close() 함수를 호출하면, 기반스트림의 close()도 자동으로 호출하게 된다.

4. 문자기반 스트림 (Reader, Writer)

  • 문자를 의미하는 char형이 2byte이기 때문에 문자를 처리하는데 더 효율적이다.
  • 인코딩 처리를 해준다.
  • 종류
    • FileReader, Writer
    • CharArrayReader, Writer
    • PipedReader, Writer
    • StringReader, Writer

5. 문자기반 보조스트림

profile
쓸데없는 소리를 좋아하는 개발자

0개의 댓글