(1) IO(Input/Output)
input : 키보드, 파일
output : 모니터, 파일
(2) 스트림(Stream) : 데이터가 돌아다니는 선(통로) → 데이터를 목적지까지 IO하는 방법
특징
- 스트림은 단방향!! input, output은 따로따로 만들어줘야함
- 자바에서 읽기/ 쓰기는 동시에 불가!
- FIFO(First In First Out), 지연 가능
(3) 입출력 스트림 구조
장치 또는 파일 ———> 입력 스트림 ————> 자바 프로그램
장치 또는 파일 <——— 출력 스트림<————- 자바 프로그램
(4) 스트림의 특성
- 바이트 단위로 입출력하는 바이트 스트림 : 클래스명이 Stream으로 끝남
- 문자 단위로 입출력하는 문자 스트림 : 클래스명이 Reader, Writer로 끝남
- 사용이 끝나면 Close()로 닫아야 메모리 누수(leak) 방지 가능
(5) 스트림의 대분류
1) 바이트 스트림
바이트(8비트) 단위로 데이터를 전송하는 방식
이미지, 영상, 음악
java.io.InputStram, java.io.OutputStram
2) 문자 스트림
자바에서는 char가 2 byte이기 떄문에 한글 전송 등은 바이트 스트림에서 깨짐
이미지, 영상, 음악은 처리 불가!
바이트 스트림은 byte[ ], 문자 스트림은 char[ ]
(6) InputStream의 메서드
int read()
int read(byte[ ] b)
int read(byte[ ] b, int offset, int len)
(7) InputStream의 종류
FileInputStream : 파일
pipeInputStream : 메모리
AudioInputStream : 오디오
ByteArrayInputStream : 프로세스
(8) InputStream Exercise
Image, URL(HTML), SequenceInputReader
(9) OutputStream
InputStream의 read를 write로 바꾸면 됨
'개발 > JAVA' 카테고리의 다른 글
Hello World! (0) | 2023.01.18 |
---|---|
Swing (0) | 2023.01.09 |
스레드(Thread) (0) | 2023.01.09 |
컬렉션 프레임워크 (Collection Framework) (0) | 2023.01.09 |
기본 클래스(String 외) (0) | 2023.01.09 |