javaIO流总结

来源:互联网 发布:js url转base64编码 编辑:程序博客网 时间:2024/06/15 03:02

一、  流的分类

 
•   按数据流动方向
 
– 输入流:只能从中读取字节数据,而不能向其写出数据
 
– 输出流:只能向其写入字节数据,而不能从中读取数据
 
•   按照流所处理的数据类型
 
– 字节流:用于处理字节数据。
 
– 字符流:用于处理Unicode字符数据。
 
•   按照流所处理的源
 
– 节点流:从/向一个特定的IO设备读/写数据的流。(低级流)
 
– 处理流:对已存在的流进行连接和封装的流。(高级流)
 
二、  缓冲流
 
•   缓冲流要“套接”在相应的节点流之上,对读写的数据提供了缓
 
冲的功能,提高了读写的效率,同时增加了一些新的方法。
 
•  J2SDK提供了四种缓存流:
 
–BufferedReader
 
–BufferedWriter
 
–BufferedInputStream s
 
–BufferedOutputStream
 
 
 
 
 
•  缓冲输入流支持其父类的mark()和reset()方法:
 
–mark()用于“标记”当前位置,就像加入了一个书签,可以使用reset()方法返回这个标记重新读取数据。
 
•  BufferedReader提供了readLine()方法用于读取一行字符串(以\r或\n分隔)。
 
•  BufferedWriter提供了newLine()用于写入一个行分隔符。
 
•  对于输出的缓冲流,写出的数据会先在内存中缓存,使用flush()方法将会使内存中的数据立刻写出。
 
三、  类层次
 
3.1、InputStream类层次
 
 
 

 

 \

 

 

 

3.2、OutputStream类层次

\

 

3.3、Reader类层次

 

 

 \

 

 

 

3.4、Writer类层次

\

 

四、  常用的字符流与字节流的转化

\ 


说明:
 
1.     字节流用于读写诸如图像数据之类的原始字节流。
 
2.     字符流用于读写诸如文件数据之类的字符流。
 
3.     低级流能和外设交流。
 
4.     高级流能提高效率。
 
5. InputStreamReader 是字节流通向字符流的桥梁。
 
6. OutputStreamWriter是字符流通向字节流的桥梁。

 

1 0
原创粉丝点击