Decorator 패턴을 사용해 내용물에 새로운 기능을 계속 추가해 나갈 수 있다.
1. 입출력(I/O) |
1. 입출력과 스트림 |
|
2. 바이트기반 스트림 InputStream, OutputStream |
|
3. 보조스트림 --(Decorator 패턴) |
|
4. 문자기반 스트림 Reader, Writer |
2. 바이트기반 스트림 |
1. InputStream, OutputStream 최고조상 |
|
2. ByteArrayInputStream, ByteArrayOutputStream 메모리 |
|
3. FileInputStream, FileOutputStream 파일 |
3. 바이트기반 보조스트림 |
1. FilterInputStream, FilterOutputStream 최고조상 |
|
2. BufferedInputStream, BufferedOutputStream 버퍼 |
|
3. DataInputStream, DataOutputStream 기본형 단위 |
|
4. SequenceInputStream 여러 입력스트림 연결 |
|
5. PrintStream (대신 PrintWriter) |
4. 문자기반 스트림 |
1. Reader, Writer |
|
2. FileReader, FileWriter 파일 |
|
3. PipedReader, PipedWriter 프로세스(스레드) 간 통신 |
|
4. StringReader, StringWriter 메모리 입출력 |
5. 문자기반 보조스트림 |
1. BufferedReader, BufferedWriter |
|
2. InputStreamReader, OutputStreamWriter |
6. 표준입출력과 File |
1. 표준입출력 System.in, System.out, System.err |
|
2. RandomAccessFile |
|
3. File |
7. 직렬화 |
1. 직렬화 - 객체를 연속적인 데이터로 변환(↔역직렬화) |
|
2. ObjectInputStream, ObjectOutputStream 객체단위, transient |
|
3. 직렬화 가능한 클래스 만들기 implements Serializable |
|
4. 직렬화 가능한 클래스의 버전관리, 클래스 버전 동일확인 |