전체 I/O 단원 최종 정리
[Java I/O 핵심 클래스 총정리]
바이트 기반 문자 기반
InputStream Reader
FileInputStream FileReader
BufferedInputStream BufferedReader ← readLine()
OutputStream Writer
FileOutputStream FileWriter
BufferedOutputStream BufferedWriter ← newLine()
[브릿지 클래스]
InputStreamReader : 바이트 스트림 → 문자 스트림 (System.in 을 문자로 읽을 때)
OutputStreamWriter : 문자 스트림 → 바이트 스트림
언제 뭘 쓰면 되나요? - 최종 의사결정 가이드
내가 다루는 파일이 텍스트 파일인가?
YES → FileReader / FileWriter
성능이 필요하면 → BufferedReader / BufferedWriter 로 감싸기
NO (이미지, 동영상, zip 등 바이너리 파일)
→ FileInputStream / FileOutputStream
성능이 필요하면 → BufferedInputStream / BufferedOutputStream 으로 감싸기
키보드에서 입력받기
간단할 때 → Scanner
입력이 많을 때 → new BufferedReader(new InputStreamReader(System.in))