本文内容不涉及文件内容操作,主要是对指定文件元信息的获取,以及通过java代码如何创建一个文件或者删除文件
目录
文件操作的File对象
File对象的基本操作方法
得到文件(夹)对象的信息元
1.getParent
2. getName
3.getPath
4. getAbsolutePath和getCanonicalPath
文件和目录的创建
文件的创建:createNewFile
目录的创建:mkdir和mkdirs
文件(夹)的删除
直接删除:delete
程序执行结束再删除:deleteOnExit
文件操作的File对象
Java 中通过 java.io.File 类来对一个文件(包括目录)进行抽象的描述。
注意:有 File 对象,并不代表真实存在该文件
构造一个File对象,参数为String类型(文件(夹)的路径),可以同时构造一个父路径和一个孩子路径或者文件
这个路径可以是绝对路径也可以是相对路径(相对路径以当前项目的文件夹路径作为参照物)
使用File类时记得调包(ava.io.File)
File file = new File("路径")
注意:当前构建的文件对象不一定真实存在
public class Test {
public static void main(String[] args) throws IOException {
File file = new File("test.txt");
System.out.println(file.exists());
}
}
结果:
例如这里用相对路径在当前项目文件夹中构造了一个test.txt文件的对象file
这里调用exists方法查看当前对象是否真实存在,结果为false
实际上当前java项目的文件夹中确实没有这个test.txt文件
File对象的基本操作方法
得到文件(夹)对象的信息元
1.getParent方法
获得file对象的父目录文件路径:
分两种情况:
1. 如果是绝对地址创建的对象,那么直接调用getParent方法可以正常返回父目录的文件路径
2.如果是相对地址创建的对象,直接调用则可以会返回错误的文件路径,因为getParent是以你构建的对象的参数做为返回依据的,例如相对路径为 ../test.txt ,则返回的getParent结果则为 .. 而不是真正的父目录,甚至如果相对路径为 test.txt ,前面没有路径作为参数了,返回的getParent结果会为null;此时需要借助getCanonicalFile方法,以修饰后的绝对路径进行路径转换再调用getParent得到父目录
代码:
File file = new File("../text.txt");
System.out.println(file.getCanonicalFile().getParent());
2. getName
这个没什么多说的,就是返回FIle对象的纯文件(夹)名称
例如:test.txt这个文件对象不管是绝对路径还是相对路径创建的对象,那么返回的就是test.txt,getName针对的是最后具体的文件
3.getPath
返回当前文件对象的路径
实际就是返回这个对象创建时构造的路径参数
如果是绝对地址构建的对象,返回的绝对地址,如果是相对地址构建的对象,返回的就是相对地址
代码:
File file = new File("../test.txt");
System.out.println(file.getPath());
4. getAbsolutePath和getCanonicalPath
都是以绝对路径的形式返回对象的路径地址
区别:getAbsolutePath是不经过修饰的绝对地址,会把相对路径的地址完整包含进去,组成一个未修饰的路径
getCanonicalPath是经过修饰的绝对地址,中间绝对相对路径就自动进行转化
代码:
File file = new File("../test.txt");
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());
getABsolutePath把完整的相对路径不经过缩减直接把连接符都加上去了组成绝对路径
文件和目录的创建
文件的创建:createNewFile
使用createNewFile
可以先用exists方法先判断这个文件是否存在,避免在不知情的时创建失败
代码:
File file = new File("test.txt");
if(!file.exists()){
System.out.println(file.createNewFile()); // 第一次创建
}
System.out.println(file.createNewFile()); //第二次创建
由于我的项目目录中没有test.txt文件,所以exists方法判断的时false,
此时第一次创建的结果未true,已经创建完成,所以第二次创建的结果未false
目录的创建:mkdir和mkdirs
mkdir只能一次性创建一个目录,mkdirs可以一次性创建多个目录
File file = new File("test");
System.out.println(file.mkdir()); //在当前项目路径下创建一个test的目录
File file2 = new File("test1/test2");
System.out.println(file2.mkdirs()); //在当前项目路径下创建一个test1的目录,并在其中创建一个test2的子目录
文件(夹)的删除
直接删除:delete
使用delete方法,就能对路径对象的文件进行删除
例子:删除前面创建的test.txt文件
File file = new File("test.txt");
System.out.println(file.delete());
注意:目录也是相同方式操作,只不过要注意的是,目录需要先删除里层的目录,才能删掉外层的目录
程序执行结束再删除:deleteOnExit
效果和前面的delete相似,只不过delete是执行到代码就直接删除对象文件,而deleteOnExit是把整个代码执行完才删除对象文件
本篇文章介绍到这里就差不多了,本篇文章并不涉及到文件内容的操作,只是介绍了基本的文件对象的构造和文件的创建和删除,以及介绍了一些常用的File方法