Stream
- 데이터를 전송하는 연결 통로
- 단방향, 선입선출
ByteStream
- 1byte를 입출력할 수 있는 스트림
- Java에서 입출력 스트림을 통해 흘러가는 데이터의 기본 단위
- 바이트로 구성된 이미지, 동영상, 음악 파일 처리에 적합한 스트림
- InputStream과 OutputStream 두 종류가 존재
ByteStream을 이용한 데이터 입/출력
- output은 바깥에 파일로 작성, input은 바깥 파일을 읽어 내부로 입력으로 생각하면 편리
FileOutputStream/FileInputStream = 바이트 데이터 입/출력
FileWriter/FileReader = char 타입 데이터 입/출력
- 바이트 스트림으로 바이너리 파일 쓰기
FileOutputStream 객체 생성 -> 객체.write()로 파일에 기록 -> 객체.close()로 종료
- 바이트 스트림으로 바이너리 파일 읽기
FileInputStream 객체 생성 -> 객체.read()로 파일 내용 읽기 -> 객체.close()로 종료
- 바이트 스트림으로 텍스트 파일 쓰기
FileWriter 객체 생성 -> 객체.write()로 파일에 기록 -> 객체.close()로 종료
- 바이트 스트림으로 텍스트 파일 읽기
FileReader 객체 생성 -> 객체.read()로 파일 내용 읽기 -> 객체.close()로 종료
- write(데이터) = 지정한 객체에 해당 데이터 입력
- write(데이터, 시작인덱스 번호, 데이터 개수) = 지정한 데이터가 리스트 혹은 배열일 경우 데이터 입력에 사용할 데이터의 범위를 인덱스 번호 및 개수로 지정
Buffer
- 8192(2^13)바이트 배열
- 입/출력에 대한 임시 저장공간 -> 데이터를 한번에 처리하도록 도와주는 보조 스트림
BufferedInputStream/BufferedOutputStream
- FileStream 객체를 BufferedStream 객체 생성시 인자값으로 넣어줌으로써 버퍼를 씌울 수 있음
- 버퍼를 사용하여 보다 빠르게 바이너리 파일 쓰기
FileOutputStream 객체 생성 -> BufferedOutputStream 객체 생성시 인자값으로 FileOutputStream 객체 입력 -> 객체.write()로 파일에 기록 -> 객체.close()로 종료
- 버퍼를 사용하여 보다 빠르게 바이너리 파일 읽기
FileInputStream 객체 생성 -> BufferedInputStream 객체 생성시 인자값으로 FileOutputStream 객체 입력 -> 객체.read()로 파일 내용 읽기 -> 객체.close()로 종료
직렬화(Serialization)
- 메모리 상의 객체 또는 데이터를 외부 자바 시스템(파일, 다른 PC)에서도 사용할 수 있도록 바이트 스트림 형태로 변환하는 기술
- 생성한 클래스가 파일을 읽거나 쓸 수 있도록 하거나, 다른 서버로 보내거나 받을 수 있도록 하기 위해 사용
- implements Serializable을 통해 Serializable 인터페이스를 상속받음으로써 적용 가능
- transient = 직렬화 제외 설정 (외부 유출 방지, 데이터 타입 앞에 입력)
'빅데이터 부트캠프 > Java' 카테고리의 다른 글
빅데이터 부트캠프 72&73일차 (0) | 2022.10.20 |
---|---|
빅데이터 부트캠프 68일차 (0) | 2022.10.14 |
빅데이터 부트캠프 66일차 (0) | 2022.10.12 |
빅데이터 부트캠프 65일차 (0) | 2022.10.11 |
빅데이터 부트캠프 64일차 (0) | 2022.10.07 |
댓글