[리뷰] 처음 해보는 자바 프로그래밍 - 12. 입출력 작업하기
내용 정리
12.1 입출력 개요
- 외부 데이터 대상 작업 시 우선 프로그램과 외부데이터 연결 필요
- 프로그램과 외부 데이터가 연결된 길 : stream
- 입력스트림 : ~InputStream(1byte), ~Reader(2byte)
- 출력스트림 : ~OutputStream(1byte), ~Writer(2byte)
12.2 기본 입출력 작업
- 표준 입출력 : 입출력 대상 미지정 기본 입출력 대상
- 키보드(System.in)/모니터(System.out)
- 필터스트림 : 기본 스트림(외부와 직접연결)에 추가로 사용하는 스트림
- 생성자 매개변수로 기본스트림 사용 - ex) new BufferedReader(~Reader);
- 추가기능 사용을 위함 - ex) byte 단위로 읽던 것을 줄 단위로 읽음
12.3 파일 처리
- java.io.File
java.nio.File - NIO(New Input Output) - NIO2
- FileChannel - NIO, 양방향, 버퍼사용(빠른입출력)
- 프로퍼티 파일(properties file : key=value, #주석, 파일명.properties
12.4 객체 직렬화
- 자바 객체를 외부 데이터로 저장할 수 있는 타입으로 변환하는 것
- Serializable 인터페이스 구현 - 직렬화 가능 표시 역할로 메서드 구현 X
- serialVersionUID : 역직렬화 시 객체 식별 번호
- 선언하지 않으면 컴파일시 자동생성
- 직접 선언하지 않으면 다시 컴파일 했을때 또다른 번호가 부여되어 문제 가능성
추가 참고
https://woowabros.github.io/experience/2017/10/17/java-serialize.html