java之IO流归纳整理

    xiaoxiao2025-05-04  9

    一.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关键字,加了这个关键字后不能序列化。

    转载请注明原文地址: https://ju.6miu.com/read-1298748.html
    最新回复(0)