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();
}