열심히 끝까지
45강 입출력 / 자바의 IO 패키지 본문
45-1 ) IO와 스트림(Stream)
1) IO?
: Input(입력), Output(출력)
입력 : 프로그램에 데이터가 들어오는 것
출력 : 프로그램에 데이터가 나가는 것
2) 스트림?
: 데이터의 흐름
: 흐름이 정해지면 그 방향으로 간다
키보드, 파일[입력스트림] ---> 프로그램 ---> 모니터, 파일[출력스트림]
스트림의 특징
- 단 방향이다.
- FIFO(First In First Out) 구조를 갖고 있다.
- 출력단위에 따라 바이트 기반과 문자단위로 분류된다.
> 출력 단위
1byte -> 바이트 기반 스트림
문자 -> 문자 기반 스트림
45-2 ) 바이트 기반 스트림
바이트 기반 스트림?
: 바이트 단위로 데이터를 입출력하는 스트림
[1] 바이트 기반 스트림의 활용
InputStream(읽기) OutputStream(쓰기)
abstract int read() abstract void write(int b)
int read(byte[] b) void write(byte[] b)
int read(byte[] b, int off, int len) void write(byte[] b, int off, int len)
-> 입력과 출력에 따라, read() 와 write()를 구현하여 사용한다.
입력스트림 출력스트림 대상
FileInputStream FileOutputStream 파일
PipedInputStream PipedOutputStream 메모리
AudioInputStream AudioOutputStream 오디오
ByteArrayInputStream ByteArrayOutputStream 프로세스
-> 데이터를 읽거나 쓰는 대상에 따라서 적절한 스트림을 사용한다.
ex) 파일 입출력
FileInputStream fis = null;
fis = new FileInputStream("파일위치");
fis.read();
45-3 ) 바이트 기반 보조 스트림
바이트 기반 보조 스트림?
: 실제 바이트 기반 스트림의 성능을 향상시키는 역할
[1] 바이트 기반 보조스트림의 활용
입력보조스트림 출력보조스트림 사용
FilterInputStream FilterOutputStream 필터를 이용한 입출력
BufferedInputStream BufferedOutputStream 버퍼를 통한 입출력
DataInputStream DataOutputStream 기본 단위로 데이터 처리
X PrintStream print, printf, println 사용
ex) BufferedInputStream 활용
FileInputStream fis = null;
fis = new FileInputStream("파일 위치");
BufferedInputStream bis = new BufferedInputStream(fis);
<실습>File01
바이트 기반 스트림과 보조스트림을 이용하여 파일을 복사하는 코드 작성하기
-txt 파일 제작법
--> 파일을 사용할 project -> new -> file
FileInputStream <= prac.txt
입력받은 값을 FileOutputStream통해 result.txt로 출력
'멘토씨리즈 JAVA' 카테고리의 다른 글
47강 Java GUI Programming (0) | 2022.05.12 |
---|---|
46강 입출력 / 자바의 IO 패키지 (0) | 2022.05.11 |
44강 스레드3 (0) | 2022.05.10 |
43강 스레드2 (0) | 2022.05.10 |
42강 스레드1 (0) | 2022.05.10 |