※정리
≫ 입력
1) 키보드: (System.in) InputStream > InputStreamReader > BufferedReader
2) 네트워크: 키보드와 같다. BufferedReader
3) 파일: binary - FileInputStream (binary배열로)
text - FileReader
≫ 출력
1) 모니터: System.out으로 출력
2) 파일: binary - FileOutputStream
text - FileWriter > BufferedWriter > PrintWriter
3) 네트워크: OutputStream > OutputStreamWriter > BufferedWriter
InputStream / OutputStream(byte 배열 이용해서 쓴다.)
BufferedInputStream / BufferedOutputStream(잘 안쓴다. flush()를 해야 한다.)
PrintStream (Buffered를 안쓰니 잘 안씀, flush()할 필요가 없다.)
FileReader / FileWriter (텍스트 파일 받을 때)
BufferedReader / BufferedWriter(newLine(), flush()를 해야한다.) (이걸 많이 쓴다. )
PrintWriter(println()이라는 좋은 메서드 존재, newLine, flush를 동시에 해결해준다.)
InputStreamReader / OutputStreamWriter (1byte → 2byte 처리, 네트워크, 키보드 받을 때)