Java基础I/O流(二)

1、缓冲流概念
访问硬盘时间资源开销大;
缓冲流自带缓冲区域;
缓冲区域减少硬盘访问次数,提高读取文件效率。

2、字节缓冲流
字节缓冲输入 / 输出流: BufferedInputStream/BufferedOutputStream
继承于FilterInputStream/FilterOutputStream类
FilterInputStream/FilterOutputStream继承于InputStream/OutputStream抽象基类
BufferedInputStream/BufferedOutputStream的作用就是为“输入/输出字节流提供缓冲功能”
BufferedInputStream/BufferedOutputStream没有声明自己任何新的方法,它只是覆盖了基类方法
缓冲输入流每次读入和写出操作都是对缓冲区域执行的,而不是直接操作硬盘文件
注意:缓存流属于包装流,只能对已有的流进行封装,不能直接关联文件进行操作     

3、字符缓冲流
符缓冲输入/输出流: BufferedReader/BufferedWriter
继承于Reader/Writer抽象基类
BufferedReader/BufferedWriter的作用就是为“输入/输出字符流提供缓冲功能”
BufferedReader/BufferedWriter没有声明自己任何新的方法,它只是覆盖了基类方法

(方法与FileRead/FileWriter方法基本类是,新增方法:readLine/newLine  读取一行数据(以换行为结束标记)/写入一个行分隔符)

4、数据输入输出流
数据输入输出流概念
文件流和缓冲流仅仅支持简单的字节写入写出,支持的读入写出方法局限性比较大
数据流允许应用程序以适当方式将数据以Java基本数据类型写入和读出文件
数据流提供了比文件流和缓冲流更加丰富的读入写出操作
由于数据流底层依然是字节操作,所以数据流为字节流类型的拓展包装流
数据输出流拓展方法:


数据输入流的拓展方法:


5、对象流
对象流概念

所谓对象流就是将对象进行流化后通过流传输,我们可以直接将流化后的对象进行文件读写操作
对象流化就是将java对象转化为字节序列
需要进行对象流传输的对象所关联的类必须序列化

序列化:1)需要序列化的类必须实现Serializable接口

  2Serializable接口没有抽象方法,只是标注该对象可以被序列化

 3)没有实现Serializable接口类的对象是不能通过对象流传输的


对象流基本操作
对象输出流(ObjectOutputStream):writeObjct(Object obj)方法可以对参数指定的obj对象进行序列化成字节,
并把得到的字节写到输出流关联的终端(可以是文件或者是网络的URI)
对象输入流(ObjectInputStream):readObject()方法从一个终端(可以是文件或者网络URI)读取一个字节序列,
再对当前字节序列进行反序列化为一个对象,并将当前对象返回










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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值