Java小白的File学习笔记(一)——File类的简单操作
前些天做到一个非常简单的题:如何遍历输出一个文件目录下的所有文件?
但就是这么简单的问题,还是一脸懵逼,羞愧羞愧。
So,就去学习了一些File的相关知识。
此篇博客只作为个人的学习笔记,方便以后查阅。
1)什么是File类
Java.io.File类用于表示文件或目录,而且,它只用来表示文件或目录的信息,例如文件的名称,文件的大小,不能用于文件内容的访问。这个没什么好解释的,就是字面意思啦。
其实,至此已经可以解决上面的问题了。
首先我们来看几个个File类里的方法
File file = new File("文件路径");
//返回true或false,表示文件是否存在
file.exists();
//返回true或false,表示文件是不是目录
file.isDirectory();
//这个list返回是String类型,是文件名
file.list();
//这个listFiles返回是File类型
file.listFiles();
目前先说这几个方法,这些对于上面的那个问题已经可以解决了,其他方法读者可以自行查阅。
继续我们的问题:根据上面几个方法,可能小伙伴们已经有思路了,我们的解决方法就是用listFiles这个方法返回的File来递归,如果是文件,输出文件名;如果是目录,递归运行。话不多说,上代码:
//建立一个工具类,来执行遍历操作
public class FileUtil {
public static void bianli(File file) throws IOException{
if (!file.exists()) {
throw new IllegalArgumentException("目录"+file+"不存在");
}
if (!file.isDirectory()) {
throw new IllegalArgumentException(file+"不是目录");
}
//用file.listFiles()获取返回的file并存到一个File类型的数组里
File[] files = file.listFiles();
if (files != null && files.length > 0) {
for (File file2 : files) {
if (file2.isDirectory()) {
//如果是目录,则递归
bianli(file2);
}else {
不是目录,输出文件名
System.out.println(file2);
}
}
}
}
}
看一下打印结果:没有问题。
这下遍历文件目录下的所有文件并打印输出文件名这个问题就解决了。
满足o( ̄︶ ̄)o