java之IO流归纳整理

一.IO流图示






二:IO流分析


1.如何判断使用哪种流?

用系统自带的记事本打开可以读懂的可以用字符流,读不懂的只能用字节流。

2.FileReader和InputStreamReader的关系?

FileReader是InputStreamReader的子类,是InputStreamReader的简化模式。

3.创建字节流对象做了哪些事情呢?

FileOutputStream fos=new FileOutputStream("a.txt");

①调用系统资源创建文件

②创建字节输出流对象

③让字节输出流指向文件

4.为什么要关闭流?

①让对象变成垃圾,方便垃圾回收器回收

②让系统释放与该对象相关的资源

5.缓冲区流

缓冲区有大小,存入一定数据,刷新或关闭流的时候会强制一次性写入数据,避免多次访问磁盘,提高效率。

6.字符流=字节流+编码,字符流本质是包装了字节流。

7.内存操作流

内存操作流一般用于处理临时信息,因为临时信息不需要保存,使用后就可以删除,底层是数组。

8.打印输出流

①只能写不能读,用自动刷新功能(带自动刷新的打印流必须使用println方法),可以操作基本流,也可以操作高效流。

②println方法相当于readLine()、Write()、newLine()的功能。

9.标准输入输出流

System的成员变量in、out分别代表标准输入流和标准输出流。默认输入设备是键盘,默认输出设备是显示器(其实就是控制台).

10.RandomAccessFile随机访问流

①其实随机访问流不是流,只是融合了InputStream和OutputStream的功能,可写可读。此类的实例支持对随机访问文件的读取和写入。访问模式常用"rw" ,打开以便读取和写入。若文件不存在,则创建文件。

②随机访问流的public long getFilePointer()throws IOException方法可以获取当前数据的指针。

11.合并流SequenceInputStream和SequenceOutputStream

合并流可以把多个文件内容合并在一起。

构造方法1:SequenceInputStream(InputStream s1, InputStream s2)这个只能合并2个文件

构造方法2:SequenceInputStream(Enumeration<? extends InputStream> e)这个构造方法可以合并多个文件,只要给参为Enumeration的实现类就行。

①可以用创建元素为InputStream的Vector集合 Vector<InputStream> v = new Vector<>();根据多态把元素(文本)添加到集合

②调用Vector集合的方法public Enumeration<E> elements()返回的是Enumeration

③创建SequenceOutputStream流,然后读写就行.

12.序列化流ObjecIntputStream和ObjectOutputStream

序列化:   把对象像流一样在文本文件或者网络中存储 (一般的格式是与平台无关的二进制流)对象-----流数据
反序列化:   把文本文件中的流对象或者网络的流对象还原成对象 流数据-----对象

①序列化的类要实现Serializable接口,Serializable接口是标记接口,没有方法,只有实现这个序列化标记接口才能实现序列化或者反序列化。

②transient关键字,加了这个关键字后不能序列化。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值