안녕하세요
어제 자바 글을 좀 썼어야 했는데
컴퓨터에 이상이 생기는 바람에 못썼습니다.
이번 시간에는 자바에서 잘 활용되는 io 입출력에 대해 글을 쓸까 합니다.
일단 아래에 개념적인 내용을 쓰겠습니다.
IO
/////////////////////////////////////////////////
1. Stream이란?
1] Data Source (File, 키보드, 원격 컴퓨터) : 데이터의 근원
2] Data Destination (파일, 모니터, 프린터, 메모리) : 데이터가 최종적으로 도착하는 곳
데이터 소스ㅇ=====>ㅇ 프로그램 ㅇ======>ㅇ 데이터 목적지
입력스트림 출력스트림
ex) System 클래스의 InputStream 타입의 클래스 변수: in
PrintStream 타입의 클래스 변수: out/err
2. Stream 의 특징
1] FIFO구조(First In First Out)
2] 단방향
3] 스트림에 들어간 데이터가 처리되기 전에는
스트림을 사용하는 스레드는 블럭킹 상태에 빠진다.
4] 유연한 구조
3. 스트림의 구분
1] 스트림에서 다루는 데이터가 무엇이냐에 따른 구분
|
+---byte 기반 스트림(1byte 단위로 데이터가 이동)
| .....> XXXInputStream/OutputStream
+---char 기반 스트림(2byte 단위로 데이터가 이동)
......> XXXReader/Writer
2] 스트림 안에 들어온 데이터를 그대로 보내느냐,
아님 가공 절차를 거친 뒤 보내느냐에 따른 구분
|
+---Node 스트림: 데이터 소스와 직접 연결가능한 스트림
| cf> 날달걀을 그대로 내보내는 스트림
+---Filter 스트림: 데이터 소스에 직접 연결은 불가능하고 데이터 소스에 직접 연결한 노드 스트림을 가공하는 역할을 하는 스트림이다.
cf> 날달걀을 가공해서 가령, 맥반석 달걀로, 또는 달걀 후 라이 등으로 만들어 보냄 ...따라서 노드스트림과 연결해서 사용해야함.
아래에 위의 설명을 좀 요약한 그림이 있으니 참고하시길 바랍니다
댓글 없음:
댓글 쓰기