Java FilterReader
精华
小牛编辑
104浏览
2023-03-14
1 什么是Java FilterReader
Java FilterReader用于对读取器流执行过滤操作。它是用于读取过滤的字符流的抽象类。
FilterReader提供将所有请求传递到所包含的流的默认方法。FilterReader的子类应覆盖其某些方法,并且可能还提供其他方法和属性。
2 Java FilterReader的属性
修饰符&返回值 | 属性名 | 描述 |
---|---|---|
protected Reader | in | 底层字符输入流。 |
3 Java FilterReader的构造方法
修饰符 | 构造方法 | 描述 |
---|---|---|
protected | FilterReader(Reader in) | 将创建一个新的FilterReader。 |
4 Java FilterReader的方法
修饰符 | 方法 | 描述 |
---|---|---|
void | close() | 关闭流并释放与其关联的所有系统资源。 |
void | mark(int readAheadLimit) | 标记了流中的当前位置。 |
boolean | markSupported() | 告诉此流是否支持mark()操作。 |
boolean | ready() | 告诉此流是否已准备好被读取。 |
int | read() | 读取一个字符。 |
int | read(char[] cbuf, int off, int len) | 将字符读入数组的一部分。 |
void | reset() | 重置流。 |
long | skip(long n) | 跳过字符。 |
5 Java FilterReader的例子
在此示例中,我们使用的"Record.txt"文件中包含“i love my country”文本。我们正在转换带有问号'?'的空格。
package cn.xnip;
/**
* 小牛知识库网: https://www.xnip.cn
*/
/**
* Java FilterReader的例子
*/
import java.io.*;
class CustomFilterReader extends FilterReader {
CustomFilterReader(Reader in) {
super(in);
}
public int read() throws IOException {
int x = super.read();
if ((char) x == ' ')
return ((int) '?');
else
return x;
}
}
public class Demo {
public static void main(String[] args) {
try {
Reader reader = new FileReader("Record.txt");
CustomFilterReader fr = new CustomFilterReader(reader);
int i;
while ((i = fr.read()) != -1) {
System.out.print((char) i);
}
fr.close();
reader.close();
} catch (Exception e) {
e.getMessage();
}
}
}
输出结果为:
i?love?my?country