java 的流的使用中,在字符缓冲输入流中,有一个每次读取一行数据的方法:readLine();
在这里使用简单的继承方法对其继续扩展,使得返回每行前面添加序号
1 2 //需要导入的一些包 3 import java.io.BufferedReader; 4 import java.io.File; 5 import java.io.FileReader; 6 import java.io.IOException; 7 import java.io.Reader; 8 9 //使用继承的方法,对BufferedReader类的readline()方法进行扩展 10 11 //自定义一个继承BufferedReader的类 12 class BufferedRLN extends BufferedReader{ 13 int count = 0; 14 //构造方法,使用父类的参数 15 public BufferedRLN(Reader in){ 16 super(in); // 17 } 18 19 @Override 20 public String readLine() throws IOException { 21 //调用父类的readline()方法,返回一行数据 22 String content = super.readLine(); 23 //给返回的数据设置样式(这里添加行号) 24 if (content == null) { 25 return null; //如果为空,数据已经读完 26 } 27 content = count+" "+content; //添加行号 28 count++; 29 return content; 30 } 31 } 32 33 34 public class readline { 35 public static void main(String[] args) throws IOException { 36 // TODO Auto-generated method stub 37 File file = new File("C:\Users\lx\Desktop\io作业.txt"); 38 39 readlineExt1(file); 40 } 41 42 //使用自定义类 BufferedRLN 43 public static void readlineExt1(File file) throws IOException{ 44 45 FileReader frd = new FileReader(file); 46 //这里的 实际参数 frd 将传到自定义里的构造方法里 47 BufferedRLN bfrd = new BufferedRLN(frd); 48 //读取数据 49 String string = null; 50 while ((string = bfrd.readLine()) != null) { 51 System.out.println(string); 52 } 53 //关闭资源 54 frd.close(); 55 } 56 57