- 练习
- 第一题
需求:在当前模块下的aaa文件夹中创建一个a.txt文件
import java.io.File;
import java.io.IOException;
public class FileExer01 {
public static void main(String[] args) throws IOException {
File f1 = new File("AllInOne\\aaa");
f1.mkdirs();
File src = new File(f1, "a.txt");
boolean flag = src.createNewFile();
if (flag) {
System.out.println("创建成功");
}else {
System.out.println("创建失败");
}
}
}
- 第二题
需求:定义一个方法找某一个文件夹中,是否有以avi结尾的电影。(暂时不需要考虑子文件夹)
D:\\aaa
D:\\aaa\\bbb
D:\\aaa\\ccc
import java.io.File;
import java.io.FileFilter;
public class AVIFinder {
public static void main(String[] args) {
// 需要查找的文件夹数组
String[] paths = {"G:/", "G:\\虎胆龙威", "G:\\终结者2"};
// 遍历路径数组
for (String path : paths) {
// 创建路径的File对象
File f = new File(path);
// 调用listFiles方法查找相应后缀名的文件
File[] mkvFiles = f.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isFile() && pathname.getName().endsWith(".mp4");
}
});
System.out.println("=============路径:" + path + "下的文件:===================");
// 输出文件夹下的mp4文件的路径
for (File mkvFile : mkvFiles) {
System.out.println(mkvFile.getAbsolutePath());
}
}
}
}
- 第三题
需求:找到电脑中所有以avi结尾的电影。(需要考虑子文件夹)
C:\\
C:\\aaa
C:\\bbb
考虑递归
import java.io.File;
public class FileRecursion {
public static void main(String[] args) {
// 指定一个盘符
File h = new File("h:/");
listMKV(h);
}
/**
* 列出文件夹中所有的MKV文件
* @param dir 目录
*/
public static void listMKV(File dir){
// 如果是mkv文件就输出它的路径并结束
if(dir.isFile()){
if (dir.getName().endsWith(".mkv")){
System.out.println(dir.getAbsolutePath());
}
}else {
// 如果是目录,则列出所有文件
File[] files = dir.listFiles();
if (files != null) {
for (File file : files) {
// 递归
listMKV(file);
}
}
}
}
}