流
概念:内存与存储设备之间传输数据的通道
按流向分类
 输入流:将 存储设备 中的数据读入 内存
 输出流:将 内存 中的内容写入到 存储设备
按单位分类
 字节流:以字节为单位,可以读写所有数据
 字符流:以字符为单位,只能读写文本数据
按功能分类
 节点流:具有实际传输数据的读写功能(FileInputStream / FileOutputStream)
 过滤流:在节点流的基础之上增强功能(BufferedInputStream / BufferedOutputStream)
字节流父类(抽象类)
 InputStream:字节输入流
 OutputStream:字节输出流
 
字节流
1.文件字节流
 FileInputStream / FileOutputStream
 
2.字节缓冲流
 提高IO效率,减少访问磁盘的次数
 数据存储在缓冲区
 BufferedInputStream / BufferedOutputStream
3.对象流
 ObjectInputStream(反序列化) / ObjectOutputStream(序列化)
 
增强读写对象的功能
 序列化:把内存的对象写入流中
 注意事项:
- 1.序列化类需要实现Serializable接口
- 2.序列化类中对象属性要求实现Serializable接口
- 3.序列化版本号ID,保证序列化的类和反序列化的类是同一个类
- 4.使用transient修饰属性,则该属性不能序列化
- 5.静态属性不能序列化
-  
  - 6.序列化多个对象,可以借助集合实现
 
反序列化:从文件中读取对象
 static属性定义在类文件中之后,在其他类中调用该属性,并更改静态属性的值,只是更改了内存中静态属性的值,类文件中定义的静态属性并没有受到影响,当你在其他类中再次调用静态属性时,还是初始值
字符流
1.文件字符流
 
 FileWriter有缓冲区
2.字符缓冲流
 
打印流

 PrintWriter有缓冲区
转换流

 InputSreamReader:硬盘的字节输入流在内存转换为字符输入流
 OutputStreamWriter:内存的字符输出流在硬盘转换为字节输出流
File类

 FileFilter
 









