包装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 ...
随机推荐
- PostgreSQL中 AnyElement AnyArray AnynonArray的区别与联系
http://www.postgresql.org/docs/current/static/extend-type-system.html#EXTEND-TYPES-POLYMORPHIC 先看一个例 ...
- 内存不足(OutOfMemory)的调试分析
32位操作系统的寻址空间是4G,其中有2G被操作系统占用,也就是说留给用户进程的内存只有2G(其中还要扣除程序加载时映像占用的部分空间,一般只有1.6G~1.8G左右可以使用). 如果进程运行中需要申 ...
- BZOJ 1497: [NOI2006]最大获利 最小割
1497: [NOI2006]最大获利 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1497 Description 新的技术正冲击着手 ...
- 几种Java写webservice的比较
Java6,Axis2.XFire.CXF 1.JWS是Java语言对WebService服务的一种实现,用来开发和发布服务.而从服务本身的角度来看JWS服务是没有语言界限的.但是Java语言为Jav ...
- Android Client and Jsp Server
1. Interestfriend Server https://github.com/eltld/Interestfriend_server https://github.com/774663576 ...
- android-square-progressbar-legacy
https://github.com/eltld/android-square-progressbar-legacy
- oracle where 后面的条件中|| 是什么意思
oracle where 后面的条件中|| 是连接符号,Oracle中另一个concat函数能够连接两个字符串 concat(a,b) Oracle中nvl函数的使用方法和作用是什么? 假设你某个字段 ...
- php.ini的配置
一.user_agent ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)') user_agent,再 ...
- discuz(dz) SSO(单点,同歩,异步)登录 --转
原文地址:http://fc-lamp.blog.163.com/blog/static/1745666872012762520123/ discuz(dz) SSO(单点,同歩,异步)登录 一般流 ...
- YYCache 设计思路
iOS 开发中总会用到各种缓存,最初我是用的一些开源的缓存库,但到总觉得缺少某些功能,或某些 API 设计的不够好用.YYCache (https://github.com/ibireme/YYCac ...