IO流小知识

IO流小知识

一、字节流小知识

1、概念
IO流即input和output操作,内存数据存储到持久化设备为ouput,持久化设备数据读取到内存为input。

2、分类
(1)字节流
(2)字符流

3、OutputStream
(1)字节输出流 抽象类
(2)常用方法
close----关闭输出流并释放资源
flush----刷新输出流并强制写出缓存字节
write(byte[] b)----从byte数组写入此输出流
(3)FileOutputStream文件输出流:是将数据写入 File

4、InputStream
(1)字节输入流 抽象类
(2)常用方法
read()----从输入流中读取数据的下一个字节
read(byte[] b)----从输入流中读取一定数量的字节,并存储再缓冲数组b中,返回字节数
(3)FileInputStream文件输入流:从文件中获得输入字节

二、缓冲流小知识

1、概念
通过缓冲区读写,可以提高IO流的读写速度

2、分类

  • 字节缓冲输出流BufferedOutputStream
  • 字节缓冲输入流BufferedInputStream

3、BufferedOutputStream
(1)字节缓冲输出流
(2)将数据写入文件

4、BufferedInputStream
(1)字节缓冲输入流
(2)从文件写入内存

三、字符流小知识

分类

  • 字符输入流 Reader ------- 抽象类
  • FileReader :操作文件的字符输入流
  • 字符输出流 Writer --------抽象类
  • FileWriter :操作文件的字符输出流

四、转换流

1、编码
(1)文字--------> 数字 :编码
(2)数字-------->文字 : 解码

2、OutputStreamWriter
(1)将字符流转换成字节流
(2)方法

//创建与文件关联的字节输出流对象
FileOutputStream fos = new FileOutputStream("c:\\xx.txt");
//创建可以把字符转成字节的转换流对象,并指定编码
OutputStreamWriter osw = new OutputStreamWriter(fos,"utf-8");

(3)字符—>编码—>字节

3、InputStreamReader
(1)将字节流转换成字符流
(2)字节—>解码—>字符

五、序列化流与反序列化流

1、定义
ObjectInputStream反序列化流:从流中读取对象
ObjectOutputStream序列化流:向流中写入对象,把对象数据进行持久化存储

2、必要条件
序列化和反序列化必要条件是需要转换的对象支持 java.io.Serializable接口

3、 ObjectOutputStream
writeObect(Object obj)----将指定的对象写入ObjectOutputStream

4、 ObjectInputStream
Object readObject()----从ObjectInputStream读取对象

5、常见异常
(1)NotSerializableException异常原因:
所序列化对象未实现Serializable接口
(2)InvalidClassException异常原因:、

  • 该类的序列版本号与从流中读取的类描述符的版本号不匹配
  • 该类包含未知数据类型
  • 该类没有可访问的无参数构造方法

6、transient关键字
不会序列化:
(1)transient关键字修饰的属性
(2)静态修饰的属性

六、打印流

1、分类
(1)字节打印流 PrintStream
(2)字符打印流 PrintWriter

2、方法
(1)void print(String str): 输出任意类型的数据,
(2)void println(String str): 输出任意类型的数据,自动写入换行操作

七、commons-IO

1、jar包
三方jar包-----commons-io.jar

2、FileUtils类
(1)String readFileToString(File file) :读取文件内容
(2)writeStringToFile(File file,String content):将内容content写入到file
(3)copyFile(File srcFile, File destFile) : 文件复制
(4)copyDirectoryToDirectory(File srcDir,File destDir) : 文件夹复制

posted @ 2020-02-29 20:16  李泽坤  阅读(107)  评论(0编辑  收藏  举报