Java I/O 输入输出流(三)—— 遍历目录
2019-05-21 本文已影响0人
itczt
遍历目录
我们看一下File类复杂一点的使用,可以写一个工具类,File类的过滤操作:
FileUtils,java
//列出File的一些常用操作比如过滤,遍历等操作
public class FileUtils{
/*
*列出指定目录下(包括其子目录)的所用文件
*/
public satic void listDirectory(File dir)throws IOEception(
if(!dir.exists()){
//exists()方法用于判断文件或目录是否存在
throe new IllegalArgnumentException("目录:"+dir+"不存在");
}
if(!dir.isDirectory())
throw new IllegalArgnumentException(dir+"不是目录");
}
/*
*列出他的子目录
*/
String() filenames = dir.list()
//返回的是字符串数组,直接子的名称不包含子目录的内容
for(String string:filenames){
System.out.println(dir+"\\"+string);
//打印一下看看它返回的是什么
}
list()方法用于列出当前目录下的子目录和文件
如果是遍历子目录下的内容就需要构造成File对象做递归操作,File提供了直接返回File对象API。
File[] files = dir.listFiles();//返回的是直接子目录的抽象
for (File file : files){
System.out.println(file);
}
if(files != null && files.length > 0){
for(File file: files){
if(file.isDirectory()){
//递归
listDirectory(file);
}else(
System.out.println(file)
)
}
}
}
}
这样它就会列出所有的内容,包括子目录下的内容。
下面再来写一个测试类
FileUtilTest.java
punlic class File(ltilTest){
public ststic void main(String args) throws IOException{
FileUtils.listDirctory(new File("E:\\exanple"));
}
}