ITPub博客

首页 > IT职业 > IT职场 > [二十二]JavaIO之LineNumberReader

[二十二]JavaIO之LineNumberReader

IT职场 作者:tomlzy 时间:2021-09-09 09:54:29 0 删除 编辑

功能介绍

LineNumberReader是提供了行号的具体的装饰器类

跟踪行号的缓冲字符输入流

此类定义了方法 setLineNumber(int) 和 getLineNumber(),它们可分别用于设置和获取当前行号

默认情况下,行编号从 0 开始

该行号随数据读取在每个 行结束符 处递增,并且可以通过调用 setLineNumber(int) 更改行号

但是,setLineNumber(int) 不会实际更改流中的当前位置;

它只更改将由 getLineNumber() 返回的值

有的朋友可能觉得,这也叫装饰器模式么?

还是那句话

设计模式是作为解决问题或者设计类层级结构时的一种思维的存在,而不是公式一样的存在!

图片描述

回到顶部图片描述

回到顶部图片描述

BufferedReader是支持标记的
所以LineNumberReader也是自动支持了
内部借助的也是super.XXX
图片描述

也例行提供了skip
里面的read 是super.read.....
图片描述

回到顶部

总结

LineNumberReader本身并没有太多的东西,他是BufferedReader的子类

他的逻辑意义,非常典型简单的装饰器模式

是你还有你,一切拜托你,然后自己增加了点小功能

构造调用父类构造方法,里面的方法也都是借助于super.XXX

只不过增加了行号的功能

一定要记住,setLineNumber(int) 并不会改变流

只是改变内部的那个    private int lineNumber = 0;

原文出处:https://www.cnblogs.com/noteless/p/9642904.html

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3278/viewspace-2814217/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 图片复制
请登录后发表评论 登录
全部评论

注册时间:2019-08-13

  • 博文量
    83
  • 访问量
    653