描述如下流的基本作用:文件字节流、文件字符流、缓冲字节流、缓冲字符流字节数组流、数据流、转换流、对象流
文件字节流:
FileInputStream和FileOutputStream 已字节形式读取和输出,每次单个字符接受,也可以通过byte[]数组一次性接受数据,使用范围:任意文件。
文件字符流:
FileReader和FileWriter 每次读取接受一个字符,适合纯文本处理。
缓冲字节流:
BufferedFileInputStream和BufferedFileOutputStream 使用时自动创建数组,用于读取存储数据,通过字节读取。增加输入输出效率。属于节点流
缓冲字符流:
BufferedFileReader和BufferedFileWriter 每次读取接受一个字符,适合纯文本处理。增加输入输出效率。需要用到readerLin()和newLine()方法。
字节数组流:ByteArrayInputStream ByteArrayOutputStream 用于计算机之间传递的是字节数组,目标和源文件均指向字节数组,字节数组流可以写入对象,输出读取顺序需要一致。
数据流:
FileInputStream(从文件中获取输入字节)-BufferedInputStream(增加缓冲功能)-DataInputStream(增加了读取java基本数据类型得功能)-数据
DataOutputStream(往输入流中写入java基本数据类型)-BufferedOutputStream(提供数据写入到缓冲区得功能)-FileOutputStream(将数据写入文件中)
作用:保留源数据得基本类型
转换流:
InputStreamreader()和OutPutStreamWrite()
作用:字节流转换为字符流,可以转换为指定编码
对象流:
ObjectInputStream(反序列化)和ObjectOutputStream(序列化)
可以传递对象数据除(静态数据和transient修饰得不能被序列化)类同时需要继承Serializable接口。如果对象属性也是对象,那么对象也应该继承Serializable接口,同时需要serialVersionUID复制,防止反序列化失败。
节点流(文件字节流、文件字符流、字节数组流、)
处理流(缓冲字节流、缓冲字符流、数据流、转换流、对象流)