抽象类FilterReader,见笑了

FilterReader是Reader的一个子类,Reader的所有子类为:【BufferedReaderCharArrayReaderFilterReaderInputStreamReaderPipedReaderStringReader

在这些子类中唯独 FilterReader 是抽象类,不能够直接定义使用,否则会提示 ‘'FilterReader' 为 abstract;无法实例化’。

要用这个 FilterReader 最好的方式就是自己定义一个自己的业务类,比如叫 MyselfReader 然后 extends FilterReader  

在自己的类里复写父类的方法,官方的建议是“Subclasses of FilterReader should override some of these methods and may also provide additional methods and fields.” 就是说子类应该重写一些自己要特殊处理的父类方法,也可以在子类中增加一些父类没有的自有的方法,为 FilterReader  这个父类扩展更多的功能。

业务场景可能是:

1、从其他API服务接口请求获取的数据,要用Reader按照字符一个一个读取并处理;

2、从数据库中读取的数据要按照字符处理一个一个读取处理;

3、很少有直接从文件读取内容,然后一个一个字符处理的情况,因为从文件读取完全没有必要用这个类,有FileReader去处理。

看看下面这段代码,个人感觉这就是脱*子放*。见笑了,哈哈。

        FileReader reader = new FileReader(file);
        FilterReader fr = new FilterReader(reader) {
            @Override
            public int read() throws IOException {
                char[] c = new char[1024];
                int len;
                len = super.read(c);
                System.out.print(c);
                return len;
            }
        };
        fr.read();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值