File类判断和获取的方法主要有以下几种
话不多说 我们先来看代码
import java.io.File;
public class text {
public static void main(String args[]) {
File file = new File("D:\\学习案例\\java\\mins.java");
}
}
这里我们先引入File 然后用File创建了一个文件路径对象
然后我们 来看第一个方法 isDirectory
判断抽象路径指向的是不是一个目录
我们在file 下面编写代码如下
System.out.println(file.isDirectory());
运行结果如下
false 说明我们传的 File对象指向的不是一个目录 我们的路径是D:\学习案例\java\mins.java 明显.java是个文件的格式
我们把代码改成
public static void main(String args[]) {
File file = new File("D:\\学习案例\\java\\mins");
System.out.println(file.isDirectory());
}
再次运行
这些就判断成立了 因为D:\学习案例\java\mins 最终指向的还是一个文件目录
然后我们来看 isFile 方法 判断file抽象路径 指向的是否是一个文件
System.out.println(file.isDirectory());直接改成
System.out.println(file.isFile());
运行结果如下
因为刚才我们都判断D:\学习案例\java\mins是个目录了 所以 他当然不是文件
我们将他改回 D:\学习案例\java\mins.java
public static void main(String args[]) {
File file = new File("D:\\学习案例\\java\\mins.java");
System.out.println(file.isFile());
}
运行结果如下
这样就可以了 D:\学习案例\java\mins.java显然就是一个文件
然后我们来看 exists 判断File抽象路径是否存在
直接将 System.out.println(file.isFile()); 改成
System.out.println(file.exists());
运行结果如下
返回了true 因为我电脑里确实是有这个文件 这个路径是存在的
那么我现在把他删了
再次点击运行
因为文件被删了 这个目录已经不存在了 就返回了false 条件假
然后我们来看 getAbsolutePath 返回file对象的绝对路径
直接把System.out.println(file.exists());改成
System.out.println(file.getAbsolutePath());
运行结果如下
可能大家觉得没什么变化 是因为我们给File的本身也是绝对路径 之后可能会有相对路径 甚至有点文件对象是其他地方传给你的 你就可以通过这个拿到他的绝对路径
getPath 获取封装路径
将System.out.println(file.getAbsolutePath());改成
System.out.println(file.getPath());
运行结果如下
这个方法就是 你封装时 传给他什么样的路径 他就还你什么样的路径
getName 获取文件名称
将System.out.println(file.getPath());改成
System.out.println(file.getName());
运行结果如下
他可以拿到对应路径下文件或目录的名称 而且可以是不存在的 他只是拿了名字 不管你是不是真的有这个文件
后面两个方法需要的是一个目录 所以我们改一下File
File file = new File("D:\\学习案例\\java");
把他改为一个目录
这个目录一定要是存在 而且有文件的
然后在下面编写代码
String[] fileList = file.list();
for(String url : fileList) {
System.out.println(url);
}
运行结果如下
大家可能没看到什么意思 那么找到自己电脑的 D:\学习案例\java目录
文件正好对上了 File 的 list方法 可以根据目录 返回他下面的目录和文件列表 成一个字符串数组
listFiles方法 会返回目录下 文件和目录的绝对路径
参考代码如下
public static void main(String args[]) {
File file = new File("D:\\学习案例\\java");
File[] fileList = file.listFiles();
for(File f : fileList) {
System.out.println(f);
}
}
运行结果如下
这里输出了我们D:\学习案例\java目录下所有文件和目录的绝对路径
而且很神奇的是 listFiles是返回了一个file类型的数组 那么每一个下标都是一个File对象 那么就是说 他们单独也都可以调用File类的其他方法