黑马程序员——关于IO流的分类整理

---------------------- ASP.Net+Android+IO开发;.Net培训、期待与您交流! ----------------------

所谓IO,就是inout,即程序的输入输出。首先要理解出入是以程序为参照,数据传入到程序中叫做输入,程序把数据发送到程序外部叫输出。

由于对数据操作有两种类型:字节和字符,所以IO流中根据数据操作的类型不同,可以分为字节流和字符流。

IO流中有四大天王,都是抽象类。分别是InputStream字节输入流、OutputStream字节输出流、Reader字符输入流、Writer字符输出流。由这四个类可以引申出更多的类,比如xxxInputStream、xxxOutputStream、xxxReader、xxxWriter,其中看出Reader、Writer为字符流,xxxStream:字节流

 

另外,IO流也可以按功能分类分为:

1、内存流,根据内存里的对象(byte[],char[],String对象)构建出的流。比如

ByteArrayInputStream、ByteArrayOutputStream:操作字节数组的流

CharArrayReader、CharArrayWriter:操作字符数组的流

StringReader、StringWriter:操作字符串的流

2、节点流,根据数据源(文件,网络)构建出来的流

FileInputStream、FileOutputStream

FileReader、FileWriter

其中,FileInputStream &FileReader 应用上的区别:

  FileInputStream,FileOutputStream 适用于用来操作文件原数据;

  FileReader,FileWriter 适用于用来操作文件里的文本内容。

3、处理流,依赖于另外一个流构建出来的新的流,处理流为基本的节点流或者内存流提供额外的功能或提升效率

3.1、缓冲流:内部有个缓冲区,用来高效的读写。

BufferedInputStream、BufferedOutputStream

BufferedReader,比BufferedInputStream多了一个readLine(),用来读取一行文本

BufferedWriter,比BufferedOutputStream多了newLine(),用于换行;

3.2、原始数据流,读完则抛出EOFException。

DataInputStream、DataOutputStream

3.3、对象流,读完则抛出EOFException

ObjectInputStream、ObjectOutputStream

对于这两个对象要序列化,具体操作见下一篇博客《IO流中常见流的用法》

3.4、打印流

PrintStream字符打印流

PrintWriter字节打印流

3.5、转换流,字节流和字符流之间转换的纽带。

InputStreamReader:字节输入流转为字符输入流

OutputStreamWriter:字符输出流转为字节输出流

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流!----------------------

 详细请查看:http://edu.csdn.net

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值