반응형
보조 스트림
실제 읽고 쓰는 스트림이 아닌 보조 기능을 제공하는 스트림이다
FilterInputStream
, FilterOutputStream
이 보조 스트림의 상위 클래스다
생성자의 매개변수로 또 다른 스트림(기반 스트림이나 다른 보조 스트림)을 가진다
InputStreamReader, OutputStreamWriter
바이트 단위로 읽거나 쓰는 자료를 문자로 변환해주는 보조 스트림이다
FileInputStream
으로 읽은 자료를 문자로 변환하는 예제다
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class InputStreamReaderTest {
public static void main(String[] args) {
try (InputStreamReader isr = new InputStreamReader(new FileInputStream("reader.txt"))) {
int i;
while ((i = isr.read()) != -1) {
System.out.print((char) i);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
BufferedInputStream, BufferedOutputStream
8k의 배열이 제공되어 입출력이 빠르게 하는 기능이 제공되는 보조 스트림이다
BufferedReader
, BufferedWriter
는 문자용 입출력 보조 스트림이다
BufferedInputStream
, BufferedOutputStream
을 이용해 파일을 복사하는 예제다
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class BufferedStreamTest {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("a.zip");
FileOutputStream fos = new FileOutputStream("copy.zip");
BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos = new BufferedOutputStream(fos)) {
int i;
while ((i = bis.read()) != -1) {
bos.write(i);
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("파일 복사 완료");
}
}
반응형
'Java' 카테고리의 다른 글
멀티 Thread 동기화 (0) | 2024.08.22 |
---|---|
Thread 클래스의 여러 메소드 (0) | 2024.08.15 |
Thread 만들기 (0) | 2024.08.08 |
Wrapper 클래스 (0) | 2024.05.21 |
스레드 (0) | 2024.05.20 |