JAVA/포스팅

자바 FilterInputStream

짜집퍼박사(짜박) 2023. 11. 26. 01:52

FilterInputStream은 다른 입력 스트림을 기반으로 하는 보조 입력 스트림의 추상 기본 클래스입니다. 이 클래스는 다양한 종류의 입력 스트림에서 데이터를 읽을 때 필요한 보조 기능을 제공합니다. 여러 유형의 필터 입력 스트림이 이 클래스를 확장하고 있습니다.

- FilterInputStream 클래스의 주요 하위 클래스로는 BufferedInputStream, DataInputStream, PushbackInputStream 등이 있습니다. 이 클래스들은 각각 버퍼링, 데이터 형식 변환, 백업 기능 등의 기능을 추가합니다.
- FilterInputStream 클래스는 주로 다른 스트림에 추가적인 기능을 제공하기 위해 상속되어 사용됩니다. 이 클래스는 추상 클래스이므로 직접 인스턴스를 생성하여 사용하기보다는 하위 클래스를 이용하여 구체적인 필터 입력 스트림을 생성하고 활용합니다.

아래는 FilterInputStream의 간단한 사용 예제입니다.

import java.io.FileInputStream;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;

public class CustomFilterInputStream extends FilterInputStream {
    public CustomFilterInputStream(InputStream in) {
        super(in);
    }

    @Override
    public int read() throws IOException {
        // 여기에 원하는 추가 동작을 구현할 수 있음
        int data = super.read();
        // 추가 동작 수행
        return data;
    }

    public static void main(String[] args) {
        try (InputStream fileInputStream = new FileInputStream("example.txt");
             CustomFilterInputStream customFilterInputStream = new CustomFilterInputStream(fileInputStream)) {

            int data;
            while ((data = customFilterInputStream.read()) != -1) {
                // 데이터 처리
                System.out.print((char) data);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

이 예제에서는 CustomFilterInputStream이 FilterInputStream을 상속하여 사용자 지정 필터를 구현한 것을 보여줍니다. 개발자는 read 메서드를 오버라이드하여 추가 동작을 수행할 수 있습니다. 이렇게 생성된 필터 입력 스트림은 다른 입력 스트림과 연결하여 사용됩니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 BufferedInputStream  (0) 2023.11.26
자바 FilterOutputStream  (0) 2023.11.26
자바 FileOutputStream  (0) 2023.11.25
자바 ByteArrayOutputStream  (0) 2023.11.25
자바 ByteArrayInputStream  (0) 2023.11.25