文件类和IO流的详细介绍请看:Java基础知识每日总结(19)—Java输入输出流、文件、递归
通过下面简单的程序就可以将指定位置的指定文件转移到指定的地方:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test {
// 找需要的文件的方法
public void FindFile(File f1, File f2) throws IOException {
if (f1.isDirectory()) { // 如果是目录即文件夹就递归遍历
File[] fff = f1.listFiles();
for (File ff : fff) {
FindFile(ff, f2);
}
} else { // 如果是文件就判断是否满足条件
if (f1.getName().endsWith(".avi")) {
File f3 = new File(f2, f1.getName());
CopyFile(f1, f3);
}
}
}
// 将文件转移
public void CopyFile(File f1, File f2) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f1));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f2));
byte[] b = new byte[1024];
int len = -1;
while ((len = bis.read(b)) != -1) {
bos.write(b, 0, len);
bos.flush();
}
bis.close();
bos.close();
}
public static void main(String[] args) throws Exception {
File f1 = new File("D:"); // 要搜索路径
File f2 = new File("D:\\File"); // 要转移的路径
new Test().FindFile(f1, f2);
}
}