IO流整体总结

IO流整体总结

总结的时候要有体系:流向,单位和功能

字节流InputStream和OutputSream

  1. 首先是所有字节流的超类:InputStream和OutputStream
  2. 接着是操作文件的子类:FileInputStream和FileOutputStream
  3. 在它们之上有个字节高级缓冲流:BufferedInputStream和BufferedOutputStream
  4. 这些流的主要方法都是read()和write(),都可以向里面传递byte数组作为缓冲区
  5. 另外高级流写出的时候要注意flush()刷新,不然数据还是停留在缓冲区中
  6. 最后关闭的时候高级流底层会自动关闭底层流

ObjectOutputStram序列化和ObjectInputStream反序列化

  1. 它是一个高级流,同样需要底层流支持
  2. 被序列化的对象需要实现Serializable接口,包括其中的对象属性也是一样
  3. 被transient修饰的属性不会被序列化
  4. 静态的成员也不会被序列化,因为静态成员属于类本身所有的东西
  5. 可以添加一个SerialVersionUID来确认序列化和反序列化双方是否一致

字符流Reader和Writer

这两个类是所有字符流的超类

  1. 文件字符流:FileReader和FileWriter
  2. 字符流不可以操作二进制文件,因为0,1转换成char后会乱码
  3. 字符高级缓冲流BufferedReader和BufferedWriter也需要底层支持
  4. 它们拥有独有的操作一行的方法:readLine()和newLine()
  5. 其他的用法和字节流一样

高级流在底层流的基础上增强功能,都需要底层流支持

  1. 桥转换流InputStreamReader和OutputStreamWriter用来在内存和存储设备间,进行字符和字节间的编码转换
  2. 打印流PrintStream和PrintWrite主要用来向文件中打印数据
  3. 它们独有的print系列方法可以直接原样打印,而所有的write()都会将数据转换成char类型
  4. 两者的区别就是一个拥有操作字节的方法,一个没有.决定了谁可以来操作二进制文件
  5. Properties配置文件流主要用来操作后缀名.properties的配置文件
  6. 使用setProperty()和get(key)来存取流中数据
  7. 它是一个键值对模式,只能存储字符串
  8. 它的存储和加载方法是store()和load(),可以在存储时配置注释.但是读取时不可读取被注释的内容
  9. 它的获取键集合方法stringPropertyNames()和getPropertyNames(),分别返回Set和Enumeration集合

File类

  1. 可以用来对文件或文件夹进行增删改查,判断文件属性等
  2. 获取文件夹内文件的方法listFiles()可以传入FileFilter或FilenameFilter接口
  3. 通过实现其accept()来进行以文件名和文件格式的文件过滤,只返回特定的文件
  4. 重点是通过递归的方式,来获取文件夹中的所有文件,或子类文件夹文件
  5. 原理就是foreach遍历文件夹中所有文件,如果还是文件就调用方法本身递归
  6. 不然就直接操作文件:如删除等.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

helloses

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值