IT十八掌掌第十三天課程總結

今天學完IT十八掌第十三天java基礎課程:


學習內容:


HashMap

HashSet

entrySet()

        |--getKey( )

        |--getValue( )

keySet()

        |--get(Key)


----------

有無緩衝區性能評測


緩衝區的原理是先將字符寫入數組,然後在批量寫入文件,避免對物理文件的頻繁訪問,提高效率。




行分割符在java中可以通過方法得到.

系統屬性名是line.separator.

不同平臺的行分隔符是不同的。

windows7:\r\n

macOS    :\n

--------------------------------

    System.getProperty("line.separator");        //執行系統屬性名/



FileWriter : 沒有緩衝區功能、

---------------------------

    本身沒有新增任何功能,繼承的OutputStreamWriter。

    write(){

        //直接寫入數據到文件中。

        sun.nio.cs.StreamEncoder.write(...);

    }



BufferedWriter:

----------------------------------

    對Writer進行包裝,裏面定義緩衝區,提供寫入單個字符、char[]、String方法。

    提高寫入效率。


    等級樹結構:Object --> Writer --> BufferedWriter

    flushBuffer() : 清理緩衝區,將緩衝區數據寫入目的地。

    close()方法 : 包含flushBuffer()。



FileReader

-----------------

    繼承關係樹:Object --> Reader --> InputStreamReader --> FileReader

    read() {

        InputStreamReader.read(){

            sun.nio.cs.StreamDecoder.read();

        }

    }



BufferedReader

------------------

    繼承關係樹:Object --> Reader --> BufferedReader --> LineNumberReader

    read(){

        char[] cbuf = ... ;

        cbuf[xxx] = c ;

        fill();

        return c ;

    }

    避免對物理文件的頻繁訪問。


byte[] bytes = new byte[1023][1024][1024];

byte[] b2 = bytes ;

.

.

.

.

bytes = null ;



flush()            //清理

refresh()        //刷新

clear()            //清空



OutputStream:輸出流

------------------------



metadata : 元數據,描述數據的數據。

-----------------------------------




遇到的問題:


IO流的種類繁多,需要熟悉



需要幫助的問題


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章