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流的种类繁多,需要熟悉



需要帮助的问题


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