IO流的分类
- 网络数据IO
- 本地文件IO
特性
- 实质是数据在不同设备见流转
- 只能处理一次(读取操作后的部分就没有了)
- 使用完毕要关闭(反向关闭)
类型划分
- 输入/输出:input输入、output输出
- 字节/字符流
字节流:字节型二进制数据 Stream
字符流:字符型文本数据 Writer输出字符流、Reader输入字符流
转换流:字节流和字符流之间需要通过转换流转换 InputStreamReader输入转换、OutputStreamReader输出转换 - 文件流:File
- PrintWriter:打印流:打印数据到某个流对象 应用场景:PrintWriter可以应用在将输出流打印输出到其他输出流,如字符串获取异常堆栈信息,可以结合PrintWriter、StringWriter来获取
- StringWriter:字符串输出流
- 缓冲流:Buffered
特殊的IO操作类、工具类
Scanner:接收输入
File:文件类
Files:文件操作的工具类
Class/ClassLoader对象.getResourceAsStream() 项目中一般使用ClassLoader.getResourceAsStream()通过相对路径获取输入流
缓冲流和其他流的区别
序列化和反序列化
java序列化和反序列化:java对象和二进制数据相互交换