集合结合IO流实现
-- 不要眼高手低,多敲,多写
1.复制目录下指定后缀的所有文件
思路:
1.封装目录
2.获取目录下所有符合条件的文件
(file 代表文件对象)
FilenameFilter -- 文件名称过滤器 -- String[] names = file.list(FilenameFilter ff); -- accept方法
-- File[] listFiles(FilenameFilter filter)
String[] names = file.list(); // 这个不合适
File[] files = file.listFiles();
3.遍历File[] 得到每一个file对象
4.进行复制
先改名再复制 -- 字符串的方法
先复制再改名 -- File的renameTo(File dest) 方法
回顾IO:
字符流:
FileWriter 写入数据方式:
void write(char[] cbuf)
写入字符数组。
abstract void write(char[] cbuf, int off, int len)
写入字符数组的某一部分。
void write(int c)
写入单个字符。
void write(String str)
写入字符串。
void write(String str, int off, int len)
写入字符串的某一部分。
FileReader 读取数据方式
read()
读取单个字符。
int read(char[] cbuf)
将字符读入数组。
abstract int read(char[] cbuf, int off, int len)
将字符读入数组的某一部分。
字节流
FileInputStream 读取数据方式:
int read()
从此输入流中读取一个数据字节。
int read(byte[] b)
从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
int read(byte[] b, int off, int len)
从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。
FileOutputStream 写入数据方式
void write(byte[] b)
将 b.length 个字节从指定 byte 数组写入此文件输出流中。
void write(byte[] b, int off, int len)
将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。
void write(int b)
将指定字节写入此文件输出流。
缓冲流
操作字符流
BufferedReader
-- 补充特有:String readLine()
BufferedWriter
-- 补充特有:void newLine()
操作字节流
BufferedInputStream
BufferedOutputStream
文件的复制,标准的步骤
封装数据源
封装目的地
读写操作
释放资源
|
|