1. 程式人生 > >字符流緩沖區的增強類LineNumberReader之裝飾模式

字符流緩沖區的增強類LineNumberReader之裝飾模式

stack per txt all auto tac 獲得 throw number

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

/**

  • 模擬類LineNumberReader
  • 特點能獲得和設置行號
  • @author WangShuang
  • */
    public class Demo {

    public static void main(String[] args) {
    MyLineNumberReader r = null;
    try {
    FileReader fw = new FileReader("c:\字符流緩沖區.txt");

    r=new MyLineNumberReader(fw);
    String buff = null;
    while((buff=r.myReadLine())!=null){
    System.out.println(r.getMyLineNumber()+":"+buff);
    }

    } catch (Exception e) {
        throw new RuntimeException("讀取錯誤");
    }finally {
        if(r!=null){
            try {
                r.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    }
    }
    class MyLineNumberReader extends BufferedReader{
    private int myLineNumber;//行號計數器
    public MyLineNumberReader(Reader in) {

    super(in);

    }
    public String myReadLine() throws IOException{
    myLineNumber++;
    return super.readLine();
    }
    public int getMyLineNumber() {
    return myLineNumber;
    }
    public void setMyLineNumber(int myLineNumber) {

    this.myLineNumber = myLineNumber;
    }

}

字符流緩沖區的增強類LineNumberReader之裝飾模式