字节流
* 输入流:InputStream 所有字节输入流父类,抽象类
* FileInputStream 非缓冲字节输入流,效率低 不推荐直接使用
* BufferedInputStream 缓冲字节输入流, 效率高 推荐直接使用
* ObjectInputStream 对象输入流,当需要从文件中读取自定义对象时使用
* 输出流:OutputStream:所有字节输出流的父类,抽象类
* FileOutputStream:非缓冲字节输出流,效率低,不推荐直接使用
* BufferedOutputStream:缓冲字节输出流, 效率高 推荐直接使用
* ObjectOutputStream:对象输出流,当需要保存自定义对象到文件中时使用。
* PrintStream:字节打印流,需要原样输出各种数据类型的值时使用
字符流
* 输入流:Reader:所有字符输入流的父类,抽象类
* FileReader:非缓冲字符输入流,效率低,不推荐直接使用
* BufferedReader:缓冲字符输入流, 效率高 推荐直接使用
* InputStreamReader:字符转换输入流,当需要修改编码表名称读取数据时使用。
* 输出流:Writer:所有字符输出流的父类,抽象类
* FileWriter:非缓冲字符输出流,效率低,不推荐直接使用
* BufferedWriter:缓冲字符输出流, 效率高 推荐直接使用
* OutputStreamWriter:字符转换输出流,当需要指定编码表名称输出数据时使用
* PrintWriter:字符打印流:需要原样输出各种数据类型的值时使用
字节流和字符流的选择
* 先判断要读写的文件类型
* 如果是文本文件,则强烈推荐使用字符流。
* 如果是非文本文件,则只能选择字节流。
* 然后确定是输入操作还是输出操作
* 如果是读取操作,则选择输入流
* 如果是写出操作,则选择输出流
没时间上代码,虽热流的类型很多,但用法都是大同小异的。