java io流汇总

io,input、output的缩写,意思为输入输出,传统的io方式是基于流的形式实现出流。

输入流&输出流

java中所有的输入流都继承了InputStream抽象类,负责读取字节信息,一般通过read()方法。反之输出流继承了OutputStream,通过write()方法写入。
常见的操作需要捕获IOException。

ByteArrayInputStream&ByteArrayOutputStream

输入输出byte数组

FileInputStream&FileOutputStream

输入输出文件,通过File格式的对象或者是文件路径
路径不存在或者没有权限会抛出FileNotFoundException

PipedInputStream&PipedOutputStream

译名管道输入流,管道输出流。线程间进行通信使用,在一个线程使用output流的write()写入数据,在另一个线程input流的read()读取数据出来。
在构造函数中传入相应的流即可将两个流绑定到一起或者是使用connect()方法,一定为配套使用。

ObjectInputStream&ObjectOutputStream

可以输出输出任何格式的对象,有一系列的writeXXX()方法,如writeInt()、writeChar()、writeFloat等,注意特别的一个writeObject()方法,传入的对象类型必须实现Serializable接口(将对象序列化)。read的时候同样用相同的类型取出即可。

FilterInputStream&FilterOutputStream

以流为对象进行输入输出。
在构造这个流时需要传入流作为参数。
是BufferedInputStream和DataInputStream流的父类,主要作用在于可以合并这两个类,这个合并过程并不会直接在代码里写出来,而是使用嵌套的形式出现。(具体例子请看参考文献)
这种嵌套合并可以保留BufferedInputStream读写速度快的优点以及DataInputStream的readXXX的方法

BufferedInputStream&BufferedOutputStream

以流为对象进行输入输出
优化了read和write的速度,因为它一次性读取或写入一大块区域,减少了次数,代价是多出了一块缓存区。
特别的,当缓存区倍填满时会自动调用flushBuffer方法,在结束时调用close或flushBuffer之后才会真正的输入完毕

本人小白学习时记录用,欢迎互相学习交流2018-12-24

参考资料

Java中常见的IO流及其使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值