※정리

≫ 입력

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 처리, 네트워크, 키보드 받을 때)

[Java] IO 입출력(Stream)에 대한 공부