Java FilterInputStream

原文:https://www.studytonight.com/java-file-io/java-filterinputstream-class

在本教程中,我们将学习 Java 中的FilterInputStream 类。该类覆盖InputStream 类的所有方法,其版本将所有请求传递给包含的输入流。

句法

这是FilterInputStream 类的语法,我们可以看到它在扩展InputStream 类。

public class FilterInputStream extends InputStream

Java FilterInputStream 类方法

表中给出了FilterInputStream 类的方法。

方法 描述
int available() 它用于返回可以从输入流中读取的估计字节数。
int read() 它用于从输入流中读取下一个字节的数据。
int read(byte[] b) 它用于从输入流中读取最大字节长度的数据。
long skip(long n) 它用于跳过并丢弃输入流中的n 字节数据。
boolean markSupported() 它用于测试输入流是否支持标记和重置方法。
void mark(int readlimit) 它用于标记输入流中的当前位置。
void reset() 它用于重置输入流。
void close() 它用于关闭输入流。

FilterInputStream类方法示例

在下面的例子中,我们使用 FilterInputStream 类的 read()方法从output.txt文件中读取数据。

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FilterInputStream;
import java.io.IOException;
public class StudyTonight 
{
    public static void main(String[] args) throws IOException 
    { 
        File data = new File("E:\\studytonight\\output.txt");  
        FileInputStream  file = new FileInputStream(data);  
        FilterInputStream filter = new BufferedInputStream(file);  
        int ch =0;  
        while((ch=filter.read())!=-1){  
            System.out.print((char)ch);  
        }  
        file.close();  
        filter.close();   
    }  
}

你好,今晚学习

输出. txt

你好,今晚学习

FilterInputStream 类中的 available()示例

在给定的示例中,我们使用 available()方法来检查文件中有多少字节可供读取。在这个程序的输出中,我们可以看到最初我们总共有17 个字节可供读取,随着我们一个接一个地读取,这些字节逐渐减少。

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FilterInputStream;
import java.io.IOException;
public class StudyTonight 
{
    public static void main(String[] args) throws IOException 
    { 
        File data = new File("E:\\studytonight\\output.txt");  
        FileInputStream  file = new FileInputStream(data);  
        FilterInputStream filter = new BufferedInputStream(file);  
        int ch =0;  
        while((ch=filter.read())!=-1){  
            System.out.println(filter.available());  
        }  
        file.close();  
        filter.close();   
    }  
}

17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

输出. txt

你好,今晚学习

结论:

在本教程中,我们学习了FilterInputStream 类及其各种方法。传递过滤数据的所有InputStream类都是 FilterInputStream 类的子类。