程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 畢向東_Java根底視頻教程第19天_IO流(04~06)

畢向東_Java根底視頻教程第19天_IO流(04~06)

編輯:關於JAVA

畢向東_Java根底視頻教程第19天_IO流(04~06)。本站提示廣大學習愛好者:(畢向東_Java根底視頻教程第19天_IO流(04~06))文章只能為提供參考,不一定能成為您想要的結果。以下是畢向東_Java根底視頻教程第19天_IO流(04~06)正文


第19天-04-IO流(readLine的原理圖例)
  • readLine辦法的原理:無論是讀取一行,或許讀取多個字符,最終都是從硬盤中一個字符一個字符讀取,所以最終運用的還是一次讀一個字符的read()辦法。
第19天-05-IO流(MyBufferedReader)
import java.io.FileReader;
import java.io.IOException;

/*
明白了BufferedReader類中特無方法readLine的原理後,可以自定義一個類中包括一個功用和readLine分歧的辦法,來模仿一下BufferedReader
*/
public class MyBufferedReader {
    private FileReader r;
    public MyBufferedReader(FileReader r) {
        this.r = r;
    }

    //可以一次讀一行數據的辦法
    public String myReadLine() throws IOException {
        //定義一個暫時容器。原BufferedReader封裝的是字符數組。為了演示方便,定義StringBuilder容器,最終前往字符串。
        StringBuilder sb = new StringBuilder();
        int ch;
        while ((ch = r.read()) != -1) {
            if (ch == '\r') continue;

            if (ch == '\n') {
                return sb.toString();
            } else {
                sb.append((char) ch);
            }
        }
        if (sb.length() != 0) return sb.toString();
        return null;
    }

    public void myClose() throws IOException {
        r.close();
    }
}

class MyBufferedReaderDemo {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("buf.txt");
        MyBufferedReader myBuf = new MyBufferedReader(fr);

        String line;
        while ((line = myBuf.myReadLine()) != null) {
            System.out.println(line);
        }
        myBuf.myClose();
    }
}
第19天-06-IO流(裝飾設計形式)
  • 裝飾設計形式: 當想要對已有的對象停止功用加強時, 可以定義類,將已有對象傳入,基於已有的功用,並提供增強功用。那麼這個自定義的類稱為裝飾類。
  • 裝飾類通常會經過結構辦法接納被裝飾的對象。 並基於被裝飾的對象的功用,提供更強的功用。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved