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 类的子类。