您的位置:首页 > 编程语言 > Java开发

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

2016-06-21 10:19 459 查看
今天学完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流的种类繁多,需要熟悉

需要帮助的问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java windows 缓冲区