1. 文件与IO流
1) 文件 File
① 文件路径的两种表示方式
② File可以表示一个文件,也可以表示一个文件夹
③ File对象的方法
④ File构造方法
没有提供无参的构造方法
2) I/O流概念
I/O:输入输出,input output,I/O相对于JVM而言
分类:流:文件的数据流
传输方向:输入流、输出流
传输单位:字节流、字符流
功能:节点流、过滤流
节点流:真正传输数据的流
过滤流:包装节点流,让节点流具有更强的功能
3) I/O字节流
字节流传输的是字节
① InputStream(抽象类) 字节输入流
子类:FileInputStream 文件的输入流
方法:read(); read(byte[] b); read(byte[]b, int off, int len);
② 流的关闭异常
is.close
③ OutputStrem(抽象类)
子类:FileOutputStream
业务需求:把文件d:\a.txt赋值一份到e:\b.txt
④ 数据过滤流:DataInputStream/DataOutputStream
能够把一个数字进行存取,文件类型为:*.dat
注意:存放数据的顺序、类型要和取数据一致
⑤ 缓冲过滤流:BufferedInputStream/BufferedOutputStream
了解缓存是如何实现的(缓存大小是8192)
有缓存输出时需要手动调用flush()方法才能把缓存中的内容刷入到文件中
⑥ 对象过滤流:ObjectInputStream/ObjectOutputStream
对象序列化(钝化):把对象转换成字符序列的过程
对象反序列化(活化):把字符序列还原成对象的过程
如果当前对象的属性又是一个对象,则对象也需要被序列化方可存储
关键字:transient(被此关键字修饰的属性不会被序列化)
字节流输入流:① 创建文件对象
② 创建字节流输入流对象
③ 将文件的数据读入到字节数组中
④ 输出数据内容,将字节数组转换为字符串,使用String类的构造方法
字节流输出流:① 创建文件对象
② 创建字节流输出流对象
③ 将字符串转为字节数组
④ 将数据写入到文件
⑤ 关闭输出流,释放资源
4) I/O字符流
① 编码
编码:把字符转换成数字的过程
解码:把数字转换成字符的过程
编码格式(UTF-8):
iso-8859-1:西方国家文字
GBK:简体中文
GB2312:简体中文
② 字符流
能够读写汉字
Writer/Reader
FileWriter/FileReader
方法和使用参照字节流
③ 桥接流
能够把字节流转换字符流,可设置转换的编码格式
InputStreamReader / OutputStreamWriter
④ 缓冲过滤流
BufferedReader / BufferedWriter:提供缓存功能,可以读一行和重新写一行
***BufferedWriter不能接受outputstream类型的对象,只能通过printwriter方法进行。
PrintWriter:可以一行一行的写入
字符流输入流:① 创建字符流输入流对象
② 创建一个BufferedReader缓冲区
③ 整行整行的读取
字符流输出流:① 创建一个字符流输出流对象
② 创建一个BufferedWrite缓冲区
③ 将要写入的内容通过write()方法写入到缓冲区
④ 刷新缓冲区
二进制读写流:
字节流转换为字符流:InputStreamReader
字符流转换为字节流: