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

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

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

简图:


IO流使用规律:

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

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

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

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

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

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

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

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

进阶图:||






  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值