包装BufferedReader的readLine()输出行号
定义一个类,实现与被增强对象相同的接口,或继承这个类,视情况而定
定义一个变量,记住被增强的对象
定义一个构造函数,接收被增强的对象
覆盖要增强的方法
对于不需要增强的方法,调用被增强对象原有的方法
包装加强类
package com.henau.baozhuang; import java.io.BufferedReader;
import java.io.IOException; public class MyBufferedReader extends BufferedReader {
private BufferedReader br;
public int numline=1;
public MyBufferedReader(BufferedReader br){
super(br);
this.br=br;
}
@Override
public String readLine() throws IOException {
String value=br.readLine();
if(value==null){
return br.readLine();
}
return numline+++value;
} }
接收原来的方法而不直接操作,是因为要找到文本结束时的null,否则前面加上行号就永远不可能是null,就会进入死循环
测试类
package com.henau.baozhuang; import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException; public class MyBufferedReaderTest {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new FileReader("1.txt"));
MyBufferedReader mbr=new MyBufferedReader(br);
String date;
while((date=mbr.readLine())!=null){
System.out.println(date);
}
}
}
运行结果:
1定义一个类,实现与被增强对象相同的接口,或继承这个类,视情况而定
2定义一个变量,记住被增强的对象
3定义一个构造函数,接收被增强的对象
4覆盖要增强的方法
5对于不需要增强的方法,调用被增强对象原有的方法
包装BufferedReader的readLine()输出行号的更多相关文章
- JNI 方法注册与签名+BufferedReader使用readLine问题
最近了解了关于JavaJNI接口的一些关于方法注册与签名相关的知识,在此进行一下总结. 使用JNI接口时,我们首先需要把Java方法声明为native: public native void f(); ...
- Java基础知识强化之IO流笔记53:IO流练习之 自定义类模拟BufferedReader的readLine()功能案例
1. 用Reader模拟BufferedReader的readLine()功能: readLine():一次读取一行,根据换行符判断是否结束,只返回内容,不返回换行符 2. 代码实现和思路分析: ...
- Java中使用BufferedReader的readLine()方法和read()方法来读取文件内容
目标:读文件 编程时,有很多时候需要读取本地文件,下面介绍一下读取方式: 读单行文件 package com; import java.io.*; import java.util.ArrayList ...
- Perl输出带颜色行号或普通输出行
定义好了一个可以输出带颜色行号以及行数据的函数print_with_line_num,f()是测试函数.在f()函数中,读取文件并输出读取的每一行数据,但根据参数选项决定是普通输出行还是同时输出带颜色 ...
- java 对readLine扩展添加行号样式
java 的流的使用中,在字符缓冲输入流中,有一个每次读取一行数据的方法:readLine(): 在这里使用简单的继承方法对其继续扩展,使得返回每行前面添加序号 //需要导入的一些包 import j ...
- Java中的BufferedReader 的readLine方法
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java ...
- 关于BufferedReader的readLine方法遇到的坑
今天偶然用到BufferedReader,在读取文本后输出数据的时候遇到了隔行输出的问题. 如: 床前明月光 疑是地上霜 123456 789789 输出的为:疑是地上霜789789 找了一下,最终找 ...
- BufferedReader 使用 readLine() 读取 UTF-8 格式的文本第一行第一个字符是空字符的解决办法
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(ksmgVo.getFiledata( ...
- 认识BufferedReader的readLine、ready,以及InputStream的available
最近,同学做实验的时候,在读取服务器端返回的时候,使用了BufferedReader类的readLine,他是这么写的,while(reader.ready()) {//执行读取操作,即readLin ...
随机推荐
- spring AOP Bean添加新方法
目的:为studentAdditionalDetails中添加Student的showDetails()和ExtraShowDetails()两个方法 spring 中AOP能够为现有的方法添加额外 ...
- 功能强大支持64位操作系统的转Flash软件(doc转swf):Print2Flash
Print2Flash是一个虚拟打印机类的文档转换软件,因此只要是可打印的文档,都可以轻松转换为Flash文件,即SWF动画,特别是用于转换PDF.Word.Excel.PowerPoint等文档为S ...
- c++ 中文字符串处理方法
转自:http://hi.baidu.com/hehehehello/item/dcc44a4a6afc690e6dc2f08b C++处理中文的问题困扰我很久了.之前一旦遇到中文基本就投诸java怀 ...
- ueditor-图片上传是报错
通过查看上面的图片中的[详细信息]可以看到是因为读取控件的路径的过程中错了导致的,因此需要用如下办法解决. 解决办法: 将ueditor.config.js中的一下代码中的路径修改为ueditor路径 ...
- 你应该知道的c# 反射详解
C#反射 首先了解C#反射的概念,反射是一个运行库类型发现的过程.通过反射可以得到一个给定程序集所包含的所有类型的列表, 这个列表包括给定类型中定义的方法.字段.属性和事件.也可以动态的发现一组给定类 ...
- 调研js模板引擎
js模板引擎越来越多的得到应用,如今已经出现了几十种js模板引擎,国内各大互联网公司也都开发了自己的js模板引擎(淘宝的kissy template,腾讯的artTemplate,百度的baiduTe ...
- 三星Galaxy S4(GT-I9500)获取ROOT权限教程(转)
http://news.candou.com/2013-05-20/453695_1.shtml 获取root权限的方法
- oracle 回车、换行符
1.回车换行符 chr(10)是换行符,chr(13)是回车, 增加换行符 select ' update ' || table_name || ' set VALID_STATE ='' ...
- android studio无法更新之解决方案
当发现android studio有更新时,当然第一时间就想更新,可惜被墙了. 解决方案: 下载wallproxy,百度你懂的 在proxy.ini中最上面,找到ip和port 接着,在android ...
- Linux服务器集群系统(三)--转
引用地址:http://www.linuxvirtualserver.org/zh/lvs3.html LVS集群中的IP负载均衡技术 章文嵩(wensong@linux-vs.org) 2002 年 ...