본문 바로가기

JAVA/Syntax

I/O 입출력 클래스 살펴보기

연결은 이런 것들이 있다.

◎ I/O - 입력과 출력

  ①연결  ->  ②읽기/쓰기(I/O)  ->  ③닫기(Close)

  ※통신기준 : 프로그램

  ※통신대상 : 외부자원



◎ Network - 컴퓨터와 컴퓨터의 통신

  ①연결  ->  ②읽기/쓰기(I/O)  ->  ③닫기(Close)

  ※프로그램이 외부에서 데이터를 읽어오는 단위 (1Byte)



◎ JDBC - DB.MS(데이터베이스)

  ①연결  ->  ②읽기/쓰기(I/O)  ->  ③닫기(Close)



1. I/O의 분류하는 기준 3가지


1.1 입력(Input)  : InputStream

1.2 출력(Output) : OutputStream



2.1 연결(Node) : Node Stream

2.2 기능(Filter) : Filter Stream



3.1 바이트(Byte) 단위 : Byte Stream 

3.2 문자(Character) 단위 : Character Stream 






2. InputStream / OutputStream (바이트 입출력)





(1) InputStream


 클래스

설 명 

 Stream

InputStream 

 바이트 입력 스트림을 위한 추상 클래스 

Filter

FileInputStream

 파일에서 바이트를 읽어들여 바이트 스트림으로 변환 

Node

PipedInputStream 

 PipedOutputStream에서 읽어들임 

Node

FilterInputStream 

 필터 적용(filtered) 바이트 입력을 위한 추상 클래스 

Filter

LineNumberInputStream 

 바이트 입력시 라인 번호를 유지 (비추천)

Filter

DataInputStream 

 기본 자료형 데이터를 바이트로 입력

Filter

BufferedInputStream 

 바이트 버퍼 입력

Filter

PushbackInputStream 

 읽어들인 바이트를 되돌림 (pushback) 

Filter

ByteArrayInputStream 

 바이트 배열에서 읽어들임 

Node

SequenceInputStream

 서로 다른 InputStream을 입력받은 순서대로 이어줌

Filter

StringBufferInputStream 

 문자열에서 읽어들임 (비추천)

Node

ObjectInputStream 

 객체로 직렬화된 데이터를 역직렬화 하여 읽는다. 

Filter


(2) OutputStream


 클래스

설 명 

 Stream

OutputStream 

 바이트 출력 스트림을 위한 추상 클래스 

Filter

FileOutputStream

 바이트 스트림을 바이트 파일로 변환 

Node

PipedOutputStream 

 PipedOutputStream에 출력

Node

FilterOutputStream 

 필터 적용(filiterd) 바이트 출력을 위한 추상 클래스 

Filter

DataOutputStream 

 바이트를 기본자료형으로 출력

Filter

BufferedOutputStream 

 바이트 스트림에 버퍼 출력

Filter

PrintStream

 Stream 값과 객체를 프린트

Filter

ByteArrayOutputStream 

 바이트 스트림에 바이트 배열 출력

Node

ObjectputStream 

 데이터를 객체로 직렬화 하여 출력

Filter



3. Reader / Writer (문자 입출력)


* 문자 입출력에는 문자 Encoding이 관여된다.




(1) Reader


 클래스

설 명 

 Stream

Reader

 바이트 입력 스트림을 위한 추상 클래스 

Filter

 BufferedReader

 문자 버퍼 입력, 라인 해석 

Filter

 LineNumberReader

 문자 입력시 라인 번호를 유지 

Filter

 CharArrayReader

 문자 배열에서 읽어들임 

Node

 InputStreamReader

 바이트 스트림을 문자 스트림으로 변환 

Filter

 FileReader

 파일에서 바이트를 읽어들여 문자 스트림으로 변환 

Node

 FilterReader

 필터 적용(filtered) 문자 입력을 위한 추상 클래스 

Filter

 PushbackReader

 읽어들인 문자를 되돌림 (pushback) 

Filter

 PipedReader

 PipedWriter에서 읽어들임 

Node

 StringReader

 문자열에서 읽어들임 

Node


(2) Writer


 클래스

설 명 

 Stream

Writer

 문자 출력 스트림을 위한 추상 클래스

Filter

BufferedWriter

 문자 스트림에 버퍼 출력, 줄바꿈 사용

Filter

CharArrayWriter 

 문자 스트림에 문자배열 출력 

Node

OutputStreamWriter 

 문자 스트림을 바이트 스트림으로 변환 

Filter

FileWriter

 문자 스트림을 바이트 파일로 변환

Node

FilterWriter 

 필터 적용(filtered) 문자 출력을 위한 추상 클래스 

Filter

PipedWriter 

 PipedReader에 출력 

Node

StringWriter 

 문자열 출력 

Node

PrintWriter 

 Writer 값과 객체를 프린트 

Filter




** 파일(File) & 직렬화(Serialization)

반응형