File 类的使用
1、IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件,先看一下构造方法,如下图:
具体实例:
A:Filefile = new File("e:\\demo\\a.txt");
B:Filefile = new File("e:\\demo","a.txt");
C:Filefile = new File("e:\\demo");
File file2 = newFile(file,"a.txt");

2、File类的功能
A:创建功能
public boolean createNewFile() // 创建新文件
public boolean mkdir() // 创建一个文件夹
public boolean mkdirs() // 创建多个文件夹
B:删除功能
public boolean delete() // 只能删除单个文件或文件夹,当一个文件
夹 下有东西时,不可以删除该文件夹
File file = new File("e:\\aaa\\bbb\\ccc");
file.delete(); // 删除了文件夹ccc(前提是ccc下没有东西)
C:重命名功能
public boolean renameTo(File dest)
// 如果是相同的路径,就相当于重命名功能
File file = new File("e:\\aaa\\a.txt");
File newfile = new File("e:\\aaa\\abb.txt");
file.renameTo(newfile);
如果是不同路径,就相当于剪切功能
File file = new File("e:\\aaa\\a.txt");
File newfile = new File("e:\\aaa\\bbb\\abb.txt");
file.renameTo(newfile);
D:判断功能
public boolean isDirectory()
判断是否为文件夹
public boolean isFile()
判断是否为文件
public boolean exists()
判断是否存在
public boolean canRead()
判断是否可读
public boolean canWrite()
判断是否可写
public boolean isHidden()
判断是否隐藏
E:获取功能
public String getAbsolutePath()
public String getPath()
public String getName()
public long length()
public long lastModified()
获取文件最后修改时间
F:高级获取功能
public String[] list()
获取的是某个 指定目录下 的所有文件或文件夹(file = new File ("d:\\aaa"));
这个只可以获取得到名称,不可以操作
public File[] listFiles()
获取的是 指定目录下 文件对象数组
可以对数组中每个元素进行操作(因为每一个都是一个文件对象)
G:过滤器功能
public String[] list(FilenameFilter filter)
FilenameFilter是一个接口,所以需要写一个实现类才可以,或
者直接在方法括号中new 一个
然后实现里面的accept()方法;方法里面写实现你需求的代码;返回
的是一个String【】数组
public File[] listFiles(FilenameFilter filter)

3、给出一个例子:
/*
* 需求:请大家把E:\JavaSE目录下所有的java结尾的文件的绝对路径给输出在控制台。
*
* 分析:
* A:封装目录
* B:获取该目录下所有的文件或者文件夹的File数组
* C:遍历该File数组,得到每一个File对象
* D:判断该File对象是否是文件夹
* 是:回到B
* 否:继续判断是否以.java结尾
* 是:就输出该文件的绝对路径
* 否:不搭理它
*/
public class FilePathDemo {
public static void main(String[] args) {
// 封装目录
File srcFolder = new File("E:\\JavaSE");
// 递归功能实现
getAllJavaFilePaths(srcFolder);
}
private static void getAllJavaFilePaths(File srcFolder) {
// 获取该目录下所有的文件或者文件夹的File数组
File[] fileArray = srcFolder.listFiles();
// 遍历该File数组,得到每一个File对象
for (File file : fileArray) {
// 判断该File对象是否是文件夹
if (file.isDirectory()) {
getAllJavaFilePaths(file);
} else {
// 继续判断是否以.java结尾
if (file.getName().endsWith(".java")) {
// 就输出该文件的绝对路径
System.out.println(file.getAbsolutePath());
}
}
}
}
}
得出结果如下,它会输出你定义路径下的绝对路径
