네트워크에서 자료의 흐름이 물과 같다는 의미에서 유래
다양한 입출력 장치에 독립적으로 일관성있는 입출력을 제공하는 방식
입출력이 구현되는 곳 : 파일 디스크, 마우스, 키보드, 메모리 네트워크 등
다른곳의 데이터를 가져오는 것, 다른 곳으로 데이터를 내보내는 것
입력 : 파일 읽기, 이미지n동영상 불러오기
출력 : 파일 쓰기, 이미지n동영상 내보내기
1byte단위로 데이터를 전송
FileInputStream
DataInputStream
BufferedInputStream
FileOutputStream
DataOutputStream
BufferedOutputStream
입력스트림 : 대상으로부터 자료를 읽어들이는 스트림(read)
출력스트림 : 대상으로 자료를 출력하는 스트림(write)
바이트 스트림: 동영상, 음악 파일 등을 읽고 쓸 때 사용
문자 스트림: 바이트 단위로 처리하면 문자는 깨짐. 2바이트 단위로 처리하도록 구현된 스트림
기반 스트림: 대상에 직접 자료를 읽고 쓰는 기능의 스트림
보조 스트림: 직접 읽고 쓰는 기능은 없고 추가적인 기능을 더해주는 스트림
보조스트림은 직접 읽고 쓰는 기능이 없으므로 항상 기반스트림이나 또 다른 보조스트림을 생성자 매개변수로 포함함.
ex) 기반스트림+보조스트림A+보조스트림B
System클래스의 표준 입출력 멤버
System.out : 표준 출력 스트림 (모니터)
System.in : 표준 입력 스트림 (키보드)
System.err : 표준 에러 출력 스트림 (모니터)