- 练习
- 第一题
需求:在当前模块下的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() {@Overridepublic 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);}}}}
}