연결은 이런 것들이 있다.
◎ 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)
'JAVA > Syntax' 카테고리의 다른 글
NetworkProgramming 실습 - FileUpLoad (0) | 2015.02.23 |
---|---|
Network 프로그래밍 (0) | 2015.02.23 |
예외처리 (Throwable) : Unchecked Exception과 Checked Exception (0) | 2015.02.10 |
[java.util] Collection과 Map을 이용한 정렬하기(Sort) (0) | 2015.02.09 |
제네릭스(Generics) (0) | 2015.02.09 |