스트림 : 단일 방향으로 연속적으로 흘러가는 것
바이트 기반 스트림 : 그림 멀티 미디어 등의 바이너리 데이터를 읽고 출력할 때 사용
문자 기반 스트림 : 문자 데이터를 읽고 출력할 때 사용
바이트 기반 출력 스트림의 최상위 클래스로 추상클래스이다
write(), flush(), close() 메소드 사용 가능
바이트 기반 입력 스트림의 최상위 클래스로 추상클래스이다
read(), close() 메소드 사용 가능
문자 기반 출력 스트림의 최상위 클래스로 추상클래스이다
write(), flush(), close() 메소드 사용 가능
문자 기반 입력 스트림의 최상위 클래스로 추상클래스이다
read(), close() 메소드 사용 가능
보조 스트림 : 다른 스트림과 연결이 되어 여러가지 편리한 기능(문자 변환, 입출력 성능 향상, 기본 타입 입출력)을 제공해주는 스트림
OutputStreamWriter, InputStreamReader
소스 스트림이 바이트 기반 스트림이면서 입출력 데이터가 문자일 때 Reader와 Writer로 변환해서 사용하는 것을 고려할 수 있다
BufferedOutputStream, BufferedInputStream, BufferedWriter, BufferedReader
메모리 버퍼를 추가로 제공하여 프로그램의 실행 성능을 향상시키는 스트림이다
DataInputStream DataOutputStream
출력한 데이터를 다시 읽어올 때는 출력한 순서와 동일한 순서로 읽어야 한다
PrintStream PrintWriter
ObjectOutputStream : 객체를 직렬화(객체를 바이트 배열로 만드는 것)하는 역할
ObjectInputStream : 객체를 역직렬화(바이트 배열을 객체로 만드는 것)하는 역할
java.io.Serializable 인터페이스를 구현한 객체를 직렬화한다
💡 throws : 예외 떠넘기기콘솔 : 시스템을 사용하기 위해 키보드로 입력받고 모니터로 출력하는 소프트웨어
System.in : 콘솔에서 키보드의 데이터를 입력받을 수 있게 함
System.out : 콘솔에서 모니터로 데이터를 출력할 수 있게 함
Scanner : 문자 배열이나 바이트 기반 입력 스트림에서 라인 단위 문자열을 쉽게 읽도록 하기 위해 java.util 패키지에서 제공하는 클래스이다
File 클래스 : 파일 및 폴더 (디렉터리) 정보를 제공해주는 역할을 한다