on
스트림 종류의 일부
스트림 종류의 일부
스트림 ( Stream )
스트림이란 프로그램과 I/O 객체를 연결하여 데이터를 송수신 하는 길을 말합니다.
InputStream은 데이터를 읽어 들이는 객체이고, OutputStream은 데이터를 써서 보내는 객체입니다.
데이터를 어떤 방식으로 전달하느냐에 따라 스트림은 두가지로 나뉩니다.
바이트 스트림( Byte Stream )
binary 데이터를 입출력하는 스트림입니다.
이미지, 동영상 등을 송수신할 때 주로 사용합니다.
문자 스트림( Character Stream )
말 그대로 text 데이터를 입출력하는데 사용하는 스트림입니다.
HTML 문서, 텍스트 파일을 송수신할 때 주로 사용합니다.
자바에서는 스트림과 관련하여 추상 클래스를 지원하고 있습니다.
바이트 스트림
InputStream / OutputStream
byte 기반 input / output stream의 최고 조상
ByteArrayInputStream / ByteArrayOutputStream
byte array( byte[] )에 대한 데이터를 입출력 하는 클래스
FileInputStream / FileOutputStream
파일( File )에 대한 데이터를 입출력 하는 클래스
문자 스트림
Reader / Writer
Character 기반 input / output stream의 최고 조상
FileReader / FileWriter
문자 기반의 파일을 입출력 하는 클래스
보조 스트림
보조 스트림이란 "프로그램에서" 파일을 읽기/쓰기 할 수 있도록 해주며, 위에서 소개한 클래스들은 주 스트림으로써 "외부에서" 파일 읽기/쓰기를 수행합니다.
다음 클래스들은 보조 스트림의 종류들입니다.
FilterInputStream / FilterOutputStream
byte 기반 보조 스트림의 최고 조상
BufferedInputStream / BufferedOutputStream
입출력 효율을 높이기 위해 버퍼( byte[] )를 사용하는 보조스트림
BufferedReader / BufferedWriter
입출력 효율을 높이기 위해 버퍼( char[] )를 사용하는 보조스트림
라인 단위의 입출력에 용이
InputStreamReader / OutputStreamReader
byte 기반 스트림을 character 기반 스트림처럼 쓸 수 있도록 함
인코딩 변환 가능
참조
[Java] 핵심정리 (2) - File I/O ( Stream ) :: victolee (tistory.com)
from http://400sos400.tistory.com/194 by ccl(A) rewrite - 2021-10-01 12:01:49