Java 的流的使用中,在字符缓冲输入流中,有一个每次读取一行数据的方法:readLine();
在这里使用简单的继承方法对其继续扩展,使得返回每行前面添加序号
2 //需要导入的一些包
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
//使用继承的方法,对BufferedReader类的readline()方法进行扩展
//自定义一个继承BufferedReader的类
class BufferedRLN extends BufferedReader{
int count = 0;
//构造方法,使用父类的参数
public BufferedRLN(Reader in){
super(in); //
}
@Override
public String readLine() throws IOException {
//调用父类的readline()方法,返回一行数据
String content = super.readLine();
//给返回的数据设置样式(这里添加行号)
if (content == null) {
return null; //如果为空,数据已经读完
}
content = count+" "+content; //添加行号
count++;
return content;
}
}
public class readline {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File file = new File("C:\\Users\\lx\\Desktop\\io作业.txt");
readlineExt1(file);
}
//使用自定义类 BufferedRLN
public static void readlineExt1(File file) throws IOException{
FileReader frd = new FileReader(file);
//这里的 实际参数 frd 将传到自定义里的构造方法里
BufferedRLN bfrd = new BufferedRLN(frd);
//读取数据
String string = null;
while ((string = bfrd.readLine()) != null) {
System.out.println(string);
}
//关闭资源
frd.close();
}