한자공/시즌3/20140807 (rev. 1.51)
8월 7일 폭파 됬지만 자바에 대한 열정으로 인터넷 정리
유재범 | 참석 |
이지수 | 참석 |
김용준 | 참석 |
김정민 | 참석 |
- 핵심 : 파일 입출력과 스트림
- 바이트 스트림 & 문자 스트림
I/O
input과 Output의 약자 -> 입출력
스트림(Stream)
1. 데이터를 운반하는데 사용되는 연결통로
2. 스트림은 FIFO(First In First Out)구조
3. 단방향통신만 가능 -> 입력스트림(input stream)과 출력스트림(output stream) 2개의 스트림이 존재
4. 바이트 스트림, 문자 스트림 두개로 나뉨
※ 다음에 나오는 그림들은 모든 스트림을 정리한 것이 아니므로 다른 스트림이 필요하면 API와 구글님께...
바이트스트림
┌ FileInputStream
┌- InputStream ┼ FilterInputStream ┬ BufferedInputStream
│ │ └ DataInputStream
│ └ ObjectInputStream
Object┤
│ ┌ FileOutputStream
│ │ ┌ BufferedOutputStream
└- OutputStream ┼ FilterOutputSteam ┼ DataOutputStream
│ └ PrintStream
└ ObjectOutputStream
- Buffered~ : 입출력의 효율을 높이기 위해 버퍼(바이트배열)를 사용하여 쓴다.
- Data~ : byte단위가 아닌, 다른 기본 자료형의 단위로 읽고 쓸수 있게했다.
- PrintStream : printf. println, print 메서드를 오버로딩해서 기능을 제공한다.(System.out.printf)
- PrintWriter이 다양한 언어의 문자를 처리하기 때문에 가능하면 PrintWriter를 권장
문자 스트림
┌ BufferedReader
┌- Reader ┼ InputStreamReader - FileReader
Object┤
│ ┌ BufferedWriter
└- Writer ┼ OutputStreamWriter - FileWriter
└ PrintWriter
※ java에서는 C언어와 달리 char형이 2 byte를 기본이기 때문에 문자를 처리하기 힘들다.
그러므로 문자기반 스트림을 사용하자.
※ InputStream -> Reader
OutputStream -> Writer