码迷,mamicode.com
首页 > 其他好文 > 详细

IT十八掌掌第十三天课程总结

时间:2016-06-21 11:01:18      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:windows7   缓冲区   java基础   课程   write   

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



需要帮助的问题


本文出自 “菜鸟成就数据之路” 博客,转载请与作者联系!

IT十八掌掌第十三天课程总结

标签:windows7   缓冲区   java基础   课程   write   

原文地址:http://liubx.blog.51cto.com/11235064/1791264

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!