FilterReader
一、功能简述
FilterReader类是个用于过滤读取字符流的抽象类。FilterReader提供了默认的方法,将请求传递到其包含的底层流中。以该类作为基类的类需要覆写该类的一些方法,同时也可以提供一些额外的方法和参数
二、FilterReader方法及关键字介绍
1.关键字
protected Reader in; //字符输入流Reader
2.构造方法
protected FilterReader(Reader in) //用传入的字符输入流创建FilterReader
3.一般方法
int read() //读取一个字节
int read(char[] b, int off, int len) //批量写入字符,自定义起始和长度
long skip(long n) //跳过n个字符数
boolean ready() //判断此流是否可以读取
boolean markSupport() //判断流是否支持标记操作
void mark() //标记流
void reset() //重置最后一次mark的位置
void close() //关闭流
三、源码分析
public abstract class FilterReader extends Reader { //继承关系
protected Reader in; //字符输入流Reader
//用传入的字符输入流创建FilterReader
protected FilterReader(Reader in) {
super(in);
this.in = in;
}
//读取一个字符
public int read() throws IOException {
return in.read();
}
//批量写入字符,自定义起始和长度
public int read(char cbuf[], int off, int len) throws IOException {
return in.read(cbuf, off, len);
}
//跳过n个字符数(返回跳过字符数)
public long skip(long n) throws IOException {
return in.skip(n);
}
//判断此流是否可以读取
public boolean ready() throws IOException {
return in.ready();
}
//判断流是否支持标记操作
public boolean markSupported() {
return in.markSupported();
}
//在当前位置标记流
public void mark(int readAheadLimit) throws IOException {
in.mark(readAheadLimit);
}
//重置最后一次mark的位置
public void reset() throws IOException {
in.reset();
}
//关闭流
public void close() throws IOException {
in.close();
}
}