JavaIO流
1.IO流的定义理解
IO流(input输入/output输出)流: 对象据的读写操作,读(read):理解为对已有数据的获取,例如U盘插入电脑,会扫描检测; 写(write):理解为将获取到的数据存储/记录,例如一部电影拷贝到U盘就是就是写入数据到U盘
2.IO流的分类
3. IO流的类
4. 常见的流
字节流:InputStream/OutputStream (抽象类)的子类。如:FileInputStream
字符流:Reader/Writer(抽象类)的子类。如FileReader
节点流:直接封装数据源(File对象)的流类。如FileReader(File file);
过滤流:封装流对象(Reader reader)的类。BufferReader( FileReader fileReader);
字节文件流: FileInputStream/FileOutputStream(处理图像,音频等)
字节缓冲流: BufferedInputStream/BufferedOutputStream(高效率)
字符转换流: InputStreamReader/OutputStreamReader(字节流转字符流)
字符缓冲流: BufferedReader/ BufferedWriter(高效率)
对象流: ObjectInpuStream/ObjectOutpuStream(处理序列化)
使用场景:
字符流: 处理纯文本类型,如txt,不能处理非文本类型,如音频,图像(字符流推荐使用缓冲字符流: BufferedReader/BufferedWriter --处理大文件,读取方式可以by 一个字节,或指定字节数组大小)
字节流: 图像,音频,,ppt,word文档,也可处理文本文件但效率低(字节流推荐使用字节缓冲流: BufferedInputStream / BufferedOutputStream ---处理大文件,读取方式可以by 一个字节,或指定字节数组大小)
5.字节/字符流的读+取效率测试
①字节 :使用字节文件流FileInputStream/FileOutputStream 读按方式: 一个一个字节
②字节: 使用字节文件流FileInputStream/FileOutputStream 读按方式: 指定字节数组大小
③字节: 使用字节缓冲流BufferedInputStream/BufferedOutputStream 读按方式: 一次读取一个字节
④字符:使用字符转换流(字节流转字符流)InputStreamReader/OutputStreamWriter读取文本文件(.txt)
⑤字符:使用字符缓冲流BufferedReader/BufferedWriter读取文本文件(.txt)
6.对象序列化使用的对象字节流ObjectOutputStream / ObjectInputStream
①一个实现序列化Serializable接口的pojo类 Employer
②序列化 对象 : 就是将对象的状态信息转换为可以存储或传输形式的过程(这里生成一个文件保存)
String source = "D:\\employer.ser";
Employer employer = new Employer("胖大海",22,"广东深圳",123); --- obj
③反序列化: 将数据格式装换成对象的过程
④结果
序列化: Employer employer = new Employer("胖大海",22,"广东深圳",123);
反序列化
----------------------------------------------------------- 能力有限,希望包含~~