因为是文件相关的操作 所以一定会用到File
这个是比较简单的一个例子.
首先说一些file.list和file.listFiles的区别
- file.list返回的是String,路径下的文件名称
- file.listFiles返回的是file对象,返回的就是文件.
通俗的讲就是list返回的事不带路径的 例如 test
而listFiles返回的是 D://test
新建一个FileUtils类,写用来输出文件的方法
package com.emp.io;
import java.io.File;
import java.io.IOException;
/**
* @author employeeeee
* @date 2018/9/10 14:12
*
* 列出File的一些常用操作比如过滤 遍历
*/
public class FileUtils {
/*
* 列出指定目录下(包括其子目录的所有文件)
*
*/
public static void listDirectory(File dir) throws IOException{
if(!dir.exists()){
throw new IllegalArgumentException("目录:"+dir+"不存在");
}
if(!dir.isDirectory()){
throw new IllegalArgumentException(dir+"不是目录");
}
/* String[] filenames = dir.list();
for (String string:filenames){
System.out.println(dir+"\\"+string);
}*/
//如果要遍历子目录下的内容就需要构造成File对象做递归操作.File提供了直接返回对象的API
File[] files = dir.listFiles();
if (files!=null&&files.length>0){
for (File file:files){
if (file.isDirectory()){
//递归
listDirectory(file);
}else {
System.out.println(file);
}
}
}
}
}
然后写一个测试类 测试一下
package com.emp.io;
import java.io.File;
import java.io.IOException;
/**
* @author 周子淏
* @Description:
* @date 2018/9/10 16:04
* @params * @param null
*/
public class FileUtilTest1 {
public static void main(String[] args) throws IOException {
FileUtils.listDirectory(new File("D:\\devinstall"));
}
}
网友评论