Java教程-Java FilterReader
Java FilterReader
Java FilterReader用于在读取器流上执行过滤操作。它是用于读取过滤字符流的抽象类。
FilterReader提供了默认方法,将所有请求传递给包含的流。FilterReader的子类应该重写一些方法,并可能提供额外的方法和字段。
字段
Modifier | Type | Field | Description |
---|---|---|---|
protected | Reader | in | 底层字符输入流。 |
构造函数
Modifier | Constructor | Description |
---|---|---|
protected | FilterReader(Reader in) | 它创建了一个新的过滤阅读器。 |
方法
Modifier and Type | Method | Description |
---|---|---|
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) | 它会跳过字符。 |
示例
在此示例中,我们使用包含文本"India is my country"的"javaFile123.txt"文件。在这里,我们将空格转换为问号'?'。
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 FilterReaderExample {
public static void main(String[] args) {
try {
Reader reader = new FileReader("javaFile123.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();
}
}
}
输出:
India?is?my?country