关于File类中常用方法和知识点
发布日期:2022-02-01 14:28:20
浏览次数:40
分类:技术文章
本文共 3446 字,大约阅读时间需要 11 分钟。
关于File类中常用方法和知识点
File中的List()方法和ListFile()方法的区别和使用
返回值类型 | 元素内容 |
---|---|
List()方法中的返回值是String[]数组类型 | string类型的【文件名】(包含后缀名) |
Listfile()方法的返回值类型是File[]对象数组 | File对象类型的【完整路径】 |
因此,遍历文件夹中所有文件,包括子文件夹中的文件时,最好用listFiles()方法,看起来更加明了,使用List方法的话不知道文件时哪个子文件夹下面的,因为只显示文件名。代码示例:
import java.io.File;public class Demo { public static void main(String[] args) { File file=new File("D:\\BaiduNetdiskDownload"); String[] list = file.list(); System.out.println("=========list()遍历结果========"); for (String s : list) { System.out.println(s); } System.out.println("=====listfiles()遍历结果========="); File[] files = file.listFiles(); for (File file1 : files) { System.out.println(file1); } }}
两种运行结果如图:
File中过滤器FilenameFilter()和FileFilter的参数详解和使用
接口FileFilter
用于抽象路径名的过滤器,此接口的实例可传递给File类的listFiles(FileFilter)方法 方法:public boolean accept(File pathname) 可以对路径进行过滤
接口FilenameFilter
用于过滤文件名,Abstract Window Toolkit的文件对话框组件使用这些实例过滤File类的list方法中的目录清单。 方法: public boolean accept(File dir, String name) 用于对文件名进行过滤
代码案例:
import java.io.File;import java.io.FileFilter;public class Demo { public static void main(String[] args) { //测试Filefilter接口 File file = new File("D:\\BaiduNetdiskDownload"); File[] files = file.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { if (pathname.canWrite()){ return true; } else { return false; } } }); for (File file1 : files) {//遍历 System.out.println(file1); } }}
测试结果
import java.io.File;import java.io.FilenameFilter;public class Demo { public static void main(String[] args) { //测试FileNamefilter接口 File file = new File("D:\\BaiduNetdiskDownload"); File[] files = file.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { if(name.endsWith(".rar")){//过滤出来后缀为.rar的文件 return true; }else{ return false; } } }); for (File file1 : files) {//遍历 System.out.println(file1); } }}
测试结果:
File中递归查看和删除指定文件夹的所有文件
》递归查看指定文件夹下的所有文件(包括子文件夹下的文件)
public static void main(String[] args) { File file =new File("D:\\step1"); getFiles(file);public static void listDir(File dirl){ System.out.println(dir.toString()); File[] files = dir.listFiles(); if(files!=null&&files.length>0){ for (File file : files) { if(file.isDirectory()){ listDir(filel); }else{ System.out.println(file.toString()); } } } } }
》递归删除指定文件夹下的所有文件(包括子文件夹下的文件)
public static void main(String[] args) { File file =new File("D:\\step1"); deleteFiles(file); public static void deleteFile(File dir){ File[] files = dir.listFiles(); if(files!=null&&files.length>0){ //删除文件 for (File file : files) { if(file.isDirectory()){ deleteFile(file); }else{ System.out.println(file.toString()+":"+file.delete()); } } //把文件夹删除 System.out.println(dir.toString()+":"+dir.delete()); } }}}
转载地址:https://blog.csdn.net/shunshizhen120412/article/details/98872934 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月19日 16时06分33秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
洛谷 P1525 关押罪犯【种类并查集】
2019-04-28
洛谷 P2024 [NOI2001]食物链【种类并查集】
2019-04-28
POJ 1703 Find them, Catch them【种类并查集】
2019-04-28
POJ 2492 A Bug‘s Life【种类并查集】
2019-04-28
POJ 2236 Wireless Network【并查集】
2019-04-28
LeetCode C++ 214. Shortest Palindrome【字符串】困难
2019-04-28
洛谷 P2580 于是他错误的点名开始了【字典树/Map】
2019-04-28
HDU 3336 Count the string【KMP的next数组性质】
2019-04-28
洛谷 P1196 [NOI2002]银河英雄传说【带权并查集】
2019-04-28
HDU 4825 Xor Sum【01字典树/贪心】(两数最大/最小异或和)
2019-04-28
洛谷 P4551 最长异或路径【01字典树/贪心】
2019-04-28
LeetCode 921. 使括号有效的最少添加(栈)
2019-04-28
LeetCode 1018. 可被 5 整除的二进制前缀
2021-07-01
LeetCode 961. 重复 N 次的元素
2021-07-01
LeetCode 925. 长按键入(双指针)
2021-07-01
LeetCode 1309. 解码字母到整数映射
2021-07-01
动态规划应用--最长递增子序列 LeetCode 300
2021-07-01
LeetCode 53. 最大子序和(动态规划)
2021-07-01