第一天
File类
1.File类静态成员变量
2.File类的三种构造
3.File类常用方法
4.list()和listFiles()方法
5.FileFilter过滤器与listFiles()的联合使用
6.递归遍历目录
第二天
字节流(适合所有)
1.FileInputStream
2.FileOutputStream
文件的续写 :①构造函数加true
②append()函数
3.加缓冲字节数组 new byte[1024]
字符流(适合文本txt)
1.FileReader
2.FileWriter(每次write之后需要进行flush刷入文档)
3.加缓冲字符数组 new char[1024]
两种流对文件的复制
第三天
转换流 : 字符流转向字节流的桥梁
1.OutputStreamWriter
InputStreamReader
都使用FileInputStream/FileOutputStream对文件先进行操作
缓冲流
1.字节缓冲流(BufferedInputStream/BufferedOutputStream) 继承InputStream/OutputStream
构造方法:BufferedOutputStream(OutputStream os)
2.字符流缓冲区(BufferedReader/BufferedWriter) 继承Reader/Writer
a.构造方法:BufferedWriter(Writer w)/BufferedWriter(Writer w,int size) Writer子类:FileWriter/OutputStreamWriter
BufferedReader(Reader r) Reader子类:FileReader/InputStreamReader 直接子类:LineNumberReader//带行号读取
b.BufferedWriter具有自己的方法:newLine() //该换行方法具有平台无关性
c.BufferedRead具有自己的方法:readLine() //通过 \r \n \r\n 来判断是否换行读取
d.Copy文本文件
3.总结
a.四大抽象流基类 字符流(Input/OutputStream)/字节流(Reader/Writer)
第四天
Property类
读取和写入(load和store)
包含文件读取写入
序列化
对象的序列化(ObjectOutputStream/ObjectInputStream)
构造方法 1、 ObjectOutputStream(OutputStream o)
方法 writeObject(Object obj)
2、ObjectInputStream(InputStream in)
方法 readObject() 抛出ClassNotFind异常
static和transent防止序列
实现序列化接口,编译器根据类的定义,给class文件中计算一个序列号
反序列化 ObjectInputStream读取文件中序列号,如果相同,则读取成功
不相同序列号解决方法:static final long serialVersionID=134123214L;
打印流 PrintStream、PrintWriter 永远不会抛出IO异常
特点:只负责数据目的,不负责数据源;
为其他输出流,添加功能
永远不会抛出IO异常
两个打印流方法完全一致:更多使用PrintWriter
PrintWriter:继承自Writer
打印char数组,源码进行遍历打印,输出为数组内容
打印其他数组,源码进行String.valueOf()方法,输出为数组地址
打印流实现文本的复制
读取数据源 BufferedReader+File 读取文本行
写入数据目的PrintWriter+printlin 自动刷新
commons-io 工具类
FilenameUtil 文件名工具类
FileUtil 文件工具类