티스토리 뷰

Language/Java

IO

mnm11 2018. 6. 1. 04:08

기본적인 IO 처리

  • 자바에서 입력과 출력은 stream을 통해서 이루어집니다.
  • 일반적으로 IO라고 하면 파일IO만을 생각할 수 있는데, 어떤 디바이스를 통해 이뤄지는 작업을 모두 IO라고 합니다.
    • 네트워크를 통해서 다른 서버로 데이터를 전송하거나
    • 다른 서버로부터 데이터를 전송 받는 것도 IO에 포함됩니다.
    • 간단하게 콘솔에 출력하는 것도 stream을 통해서 출력하는 것입니다.

스트림을 읽는 데 관련된 주요 클래스는 다음과 같습니다.

  • 스트림을 쓰는 데 관련된 클래스는 Input을 Output으로 바꾸면 됩니다.
  • 여기에 명시된 모든 입력과 관련된 스트림들을 java.io.InputStream 클래스로부터 상속받았습니다.
  • 바이트 기반의 스트림 입력을 처리하기 위해서는 이 클래스의 하위 클래스를 사용합니다.
이름 내용
ByteArrayInputStream 바이트로 구성된 배열을 읽어서 입력 스트림을 만듭니다.
FileInputStream 이미지와 같은 바이너리 기반의 파일의 스트림을 만듭니다.
FilterInputStream 여러 종류의 유용한 입력 스트림의 추상 클래스입니다.
ObjectInputStream ObjectOutputStream을 통해서 저장해 놓은 객체를 읽기 위한 스트림을 만듭니다.
PipedInputStream PipedOutputStream을 통해서 출력된 스트림을 읽어 처리하기 위한 스트림을 만듭니다.
SequenceInputStream 별개인 두 개의 스트림을 하나의 스트림으로 만듭니다.
  • 문자열 기반의 스트림을 읽기 위해서 사용하는 클래스는 java.io.Reader 클래스의 하위 클래스들입니다.
이름 내용
BufferedReader 문자열 입력 스트림을 버퍼에 담아서 처리합니다. 일반적으로 문자열 기반의 파일을 읽을 때 가장 많이 사용됩니다.
CharArrayReader char의 배열로 된 문자 배열을 처리합니다.
FilterReader 문자열 기반의 스트림을 처리하기 위한 추상 클래스입니다.
FileReader 문자열 기반의 파일을 읽기 위한 클래스입니다.
InputStreamReader 바이트 기반의 스트림을 문자열 기반의 스트림으로 연결하는 역할을 수행합니다.
PipedReader 파이프 스트림을 읽습니다.
StringReader 문자열 기반의 소스를 읽습니다.

정리

  • 바이트 단위로 읽거나, 문자열 단위로 읽을 때 중요한 것은 한 번 open한 스트림은 반드시 닫아야 한다는 것이다.
  • 스트림을 닫지 않으면 나중에 리소스가 부족해질 수 있다.

'Language > Java' 카테고리의 다른 글

Synchronized  (0) 2018.06.01
Thread Class & Runnable Interface  (0) 2018.06.01
Process & Thread  (0) 2018.06.01
Static  (0) 2018.06.01
System Class  (0) 2018.06.01
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함