- 什么是流
- 概念:内存与存储设备之间传输数据的通道
流的分类
• 按方向 【重点】 :
• 输 入流: 将< < 存储设备> > 中的内容读入到< < 内存> > 中。
• 输出流: 将< < 内存> > 中的内容写入到< < 存储设备> > 中。
• 按单位 :
• 字节流: 以字节为单位,可以读写所有数据 。
• 字符流: 以字符为单位 , 只能读写文本数据 。
• 按功能 :
• 节点流 : 具有 实际 传输 数据的读写功能。
• 过滤流: 在节点流的 基础之上增强功能 。- 字节流
- 父类(抽象类)
- InputStream:字节输入流
- OutputStream:字节输出流
- 字节节点流
- FileOutputStream
- FileInputStream
- 字节过滤流
- 缓冲流: BufferedOutputStream/BufferedInputStream
- 提高 IO 效率,减少访问磁盘的次数;
- 数据存储在缓冲区中, flush 是将缓存区的内容写入文件中,也可以直接close.
- 字节过滤流
- 数据流: DataOutputStream/DataInputStream
- 直接读写8 8 种基本数据类型
- 直接读写字符串: writeUTF (String str) ) / readUTF
- 对象流: ObjectOutputStream/ObjectInputStream
- 增强了缓冲区功能
- 增强了读写8中基本数据类型和字符串功能- 增强了对象的功能:readObject(),writeObject(Object obj)
- 使用流传输对象的过程称为序列化,反序列化.
- 对象系列化:
- 必须 实现 Serializable 接口。
- 必须保证其所有属性均可序列化。
- transient 修饰为临时属性,不参与序列化 。
- 读取到文件尾部的标志: java.io.EOFException
- 数据流: DataOutputStream/DataInputStream
- 父类(抽象类)
- 字符流
- 字符流父类(抽象类) Reader: 字符输入流 ; Writer: 字符输出流.
- FileWriter文件字符输出流,继承Writer中的方法:
- public void write(int n): 将单个字符写入到文件中
- public void write(String str): 一次性写入多个字符
- FileWriter文件字符输入流,继承Reader中的方法:
- public int read(): 一次读取一个字符的内容
- public int read(char c): 一次读取多个字符的内容,将读取到的内容存储在char类型数组中,返回值代表实际读取的字符个数,达到文件尾部返回 -1.
- public int read(char c,int off,int len) :一次性读取多个字符的内容,将读取到的内容存储在 char 类型的数组中,存储的起始下标为 off, 读取的字符个数为len,返回值代表实际读取的字符个数,达到文件的尾部返回 -1
- 过滤流 BufferedReader/PrintWriter: 缓冲流.
- InputStreamReader/OutputStreamWriter: 桥转换流
- 步骤总结
- 创建字节节点流
- 创建乔转换流,同时设置编码方式
- 包装过滤流,方便读写操作
- 读/写操作
- 关闭: 只关闭最外层流
- 异常处理
- File类
- IO 流: 对文件的内容操作.
- File 类: 对文件自身进行操作,eg:删除文件,文件重新命名等.
- 常用方法
- public boolean createNewFile() :创建文件,创建成功返回 true ,如果文件存在返回值为 false 。
- public boolean mkdir() :创建文件夹,创建成功返回 true ,如果文件存在返回值为 false 。
- public boolean delete(): : 删除文件夹/ / 文件, , 删除成功返回 true, , 否则为 false.
- 当删除文件夹时,只有当文件夹为空时,才可以删除;
- 而删除文件时,不管文件内容是否为空,都会被删除.
- public boolean renameTo(File f) :更改文件的名字,更改成功返回 true ,否则为 false.
- public boolean setReadOnly()
- public String getName() :获取文件名( ( 含扩展名) ),文件夹名.
- public boolean isFile() :判断 File 对象所对应的是否为文件,而不是目录。
- public boolean isDirectory(): : 判断 File 对象所对应的是否为目录,而不是文件.
IO框架
最新推荐文章于 2021-11-01 00:35:11 发布