程序员人生 网站导航

一张图读懂IO流 (java)不要错过!

栏目:互联网时间:2015-05-07 09:22:11

IO流的选择是开发中常常遇到的问题?下面是1张高度总结的IO流图,1张图弄定!

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

简图:


IO流使用规律:

明确1、明确源和使用目的:(注意:读写都是针对内存就行操作,输入和输出是相对硬盘的输入还是输出)记住这个以后就不会混掉!

           :   就要读,就需要使用输入系。InputStrea, Reader

          目的:就需要些,就是需要使用输出系。

明确2:处理的数据是不是是纯文本数据。
是:就使用字符流。
源:Reader 
目的:Writer
否:就是用字节流。
源:InputStream
目的:OutputStream

两个明确都肯定后,可以肯定需要使用哪一个体系。

明确3:具体是哪一个装备,明确装备的目的是为了肯定具体的对象。
源装备:
键盘,System.in
硬盘,操作文件的对象。File开头的流对象。
内存,数组。ByteArrayInputStream CharArrayReader  StringReader
网络,Socket
目的装备:
硬盘,操作文件的对象。File开头的流对象。
屏幕(控制台)System.out
内存,数组 ByteArrayOutputStream  CharArrayWriter  StringWriter
网络,Socket

需求:将字符串数据写到硬盘上。
目的:OutputStream Writer
纯文本?是,Writer
装备?硬盘,FileWriter
FileWriter fw = new FileWriter("a.txt");

明确4:是不是需要额外功能?
1,需要高效吗?BufferedInputStream BuffedOutputStream 
2,需要字节和字符之间的桥梁吗?转换流。InputStreamReader OutputStreamWriter
3,需要保证数据输出时表现情势吗?PrintWriter  PrintStream
4,需要对对象进行序列化和反序列化吗?ObjectInputStream ObjectOutputStream 
5,需要操作基本数据类型值吗?DataInputStream DataOutputStream
6,需要进行数据的合并吗?SequenceInputStream

进阶图:||






------分隔线----------------------------
------分隔线----------------------------

最新技术推荐