Java

여러가지 보조 스트림

yanJuicy 2024. 8. 10. 00:40
반응형

보조 스트림

실제 읽고 쓰는 스트림이 아닌 보조 기능을 제공하는 스트림이다

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