java.io.File类:
表示是硬盘上的一个文件或者目录
里面有属性可以获取文件的信息:比如 文件名 文件大小 修改时间等等
通过File可以创建和删除文件
流:
什么流:
计算机中两个设备间的有序的数据传输
流的分类:
按照流的传输方向分:
输入流:从数据源读取数据到当前程序 一般以InputStream或Reader结尾的流
输出流:从当前程序写出到指定位置 一般以OutputStream或Writer结尾的流
按照流传输数据类型分:
字节流:操纵是原始二进制数据 以字节为单位 可以传输任意类型数据(包括原始类型和字符类型)
一般以InputStream和OutputStream结尾
字符流:操纵的是字符数据 以字符为单位 可以传输字符数据 一般操纵字符类型文档
一般以Reader和Writer结尾
按照流的基本功能分:
节点流: 有起点和终点的有序数据传输的流
过滤流(处理流): 给节点流添加新功能 不可以传输数据
常用的流:
FileInputStream: 输入流 字节流 节点流 可以读取任意类型数据
FileOutputStream: 输出流 字节流 节点流 可以写出任意类型数据
FileReader: 输入流 字符流 节点流 只能读取字符类型数据
FileWriter: 输出流 字符流 节点流 自动缓冲区 只能写出字符类型数据
BufferedOutputStream: 输出流 字节流 过滤流 功能:给字节流输出流添加一个缓冲区
ObjectInputStream: 输入流 字节流 过滤流 功能:给字节输入流添加读取对象的功能
ObjectOutputStream: 输出流 字节流 过滤流 功能:给字节输出流添加写出对象的功能
什么是缓冲区:
程序维护一块内存区域
为什么用缓冲区:
减少对硬盘的读写操作 提高程序读写速度
Serializable接口:标示型接口 给所有实现该接口的类的对象转化为有序的数据序列 进行持久化的保存
序列化: 将实现了Serializable接口的转换为有序的数据序列 通过ObjectOutputStream保存到指定位置
反序列化: 通过ObjectInputStream将存放在指定位置的数据加载到内存 重新构建成对象