1.回顾:
递归:方法内调用方法本身的编程技巧。
注意: 1)必须有出口
2)次数不要过多。
应用:阶乘、斐波那契数列
获取指定目录下指定后缀的所有文件
删除带内容的文件夹
(File[] files = f.listFiles() -- 空指针)
字符流
FileWriter
FileReader
2. 字节流
2.1字节输出流
FileOutputStream 写入数据的步骤:
1)创建字节输出流对象。
2)写入数据
void write(byte[] b)
将 b.length 个字节从指定 byte 数组写入此文件输出流中。
void write(byte[] b, int off, int len)
将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。
void write(int b)
将指定字节写入此文件输出流。
3)释放资源
2.2字节输入流
FileInputStream 读取数据的步骤:
1)创建字节输入流对象。
2)读取数据
int read()
从此输入流中读取一个数据字节。
int read(byte[] b)
从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
int read(byte[] b, int off, int len)
从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。
直接打印在控制台上,都有可能出现中文乱码
3) 释放资源
2.3 字节流复制文本文件 OK
2.4 字节流复制图片(二进制流数据) OK
字符流复制图片(二进制流数据) 丢失数据
步骤:
封装数据源以及目的地
读写操作
释放资源
3.缓冲流
对基本的流进行封装,增加缓冲区的功能,增加效率
BufferedWriter bw = new BufferedWriter(new FileWriter("a.txt"));
3.1 缓冲流写入数据
3.2 缓冲流读取数据
缓冲字符流特有功能
BufferedReader -- readLine() : 读取一行,但是不包含换行符。
BufferedWriter -- newLine() : 写入一个换行符
4. 键盘录入数据到文本文件
注意:自定义结束标记。
|
|