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 |