下面要给大家介绍的就是java File类遍历目录的内容,具体的一起通过下面的文章来了解一下吧,希望对你可以有所帮助。
通过遍历目录可以在指定的目录中查找文件,或者显示所有的文件列表,File类的list()方法提供了遍历目录功能。
该方法有下面的两种重载形式。
分别是String[] list()和String[] list(FilenameFilter filter)。
首先来说说String[] list(),这个方法表示返回由File对象表示目录中所有文件和子目录名称组成的字符串数组,假如,调用的File对象不是目录,则返回null。
注意:list()方法返回的数组中仅包含文件名称,而不包含路径,但不保证所得数组中的相同字符串将以特定顺序出现,特别是不保证它们按字母顺序出现。
String[] list(FilenameFilter filter),这个方法的作用和list()方法相同,区别在于,返回数组中仅包含符合filter过滤器的文件和目录,假如filter为null,那么就接受所有名称。
示例:
假设要遍历C盘根目录下的所有文件和目录,并显示文件或目录名称、类型及大小,使用list()方法的实现代码:
public class Test05 { public static void main(String[] args) { File f = new File("C:/"); // 建立File变量,并设定由f变量变数引用 System.out.println("文件名称\t\t文件类型\t\t文件大小"); System.out.println("==================================================="); String fileList[] = f.list(); // 调用不带参数的list()方法 for (int i = 0; i < fileList.length; i++) { // 遍历返回的字符数组 System.out.print(fileList[i] + "\t\t"); System.out.print((new File("C:/", fileList[i])) .isFile() ? "文件" + "\t\t" : "文件夹" + "\t\t"); System.out.println((new File("C:/", fileList[i])) .length() + "字节"); } } }
因为list()方法返回的字符数组中仅包含文件名称,所以,为了获取文件类型和大小,一定要先转换为File对象再调用其方法,下面的是实例运行效果:
文件名称 文件类型 文件大小 =================================================== $Recycle.Bin 文件夹 4096字节 Documents and Settings 文件夹 0字节 Download 文件夹 0字节 DRIVERS 文件夹 0字节 FibocomLog 文件夹 0字节 Gateface 文件夹 0字节 GFPageCache 文件夹 0字节 hiberfil.sys 文件 3375026176字节 Intel 文件夹 0字节 KuGou 文件夹 0字节 logs 文件夹 0字节 msdia80.dll 文件 904704字节 MSOCache 文件夹 0字节 MyDownloads 文件夹 0字节 MyDrivers 文件夹 0字节 news.template 文件 417字节 NVIDIA 文件夹 0字节 OneDriveTemp 文件夹 0字节 opt 文件夹 0字节 pagefile.sys 文件 6442450944字节 PerfLogs 文件夹 0字节 Program Files 文件夹 12288字节 Program Files (x86) 文件夹 8192字节 ProgramData 文件夹 12288字节 QMDownload 文件夹 0字节 Recovery 文件夹 0字节 swapfile.sys 文件 268435456字节 System Volume Information 文件夹 12288字节 Users 文件夹 4096字节 Windows 文件夹 16384字节
示例:
假设,希望只列出目录下的某些文件,这就需要调用带过滤器参数的list()方法,首先需要创建文件过滤器,这个过滤器必须实现接口,并在accept()方法中指定允许的文件类型。
允许SYS、TXT和BAK格式文件的过滤器实现代码:
public class ImageFilter implements FilenameFilter { // 实现 FilenameFilter 接口 @Override public boolean accept(File dir, String name) { // 指定允许的文件类型 return name.endsWith(".sys") || name.endsWith(".txt") || name.endsWith(".bak"); } }
上面的代码创建的过滤器名称为ImageFilter,下面的话只要将该名称传递给list()方法就可以实现筛选文件,下面的是修改后的list()方法,其他代码和上面的示例相同,这里不再重复。
String fileList[] = f.list(new ImageFilter());
运行程序,遍历结果:
文件名称 文件类型 文件大小 =================================================== offline_FtnInfo.txt 文件 296字节 pagefile.sys 文件 8436592640字节
java File类遍历目录的内容你都清楚了吗?更多相关java入门知识,请继续关注本站来进行了解吧。
推荐阅读: