1、File 类概述
FIle 类是用来操作文件和文件夹的(目录),但是不能操作文件内容,文件内容是通过输入输出流来操作的。
2、创建文件和目录
Java 是面向对象的编程机制,所有文件和目录都应要有对应的 File 对象来进行操作。File 对象可以使用 mkdir() 方法来创建目录(文件夹),createNewFile() 来创建文件。值得注意的是在创建 File 对象的时候,就要指定文件对象的地址,可以是相对地址也可以是绝对地址,这里采用的是绝对地址。具体代码和运行结果如下:
public static void main(String[] args) {
// 文件对象
File file = new File("D:\\Test\\test.txt");
// 目录对象
File fileDir = new File("D:\\Test");
// 判断磁盘原来是否有文件和目录
System.out.println(file.exists());
System.out.println(fileDir.exists());
// 先创建目录
boolean mkdir = fileDir.mkdir();
System.out.println("make dir is success ?" +mkdir);
// 再创建文件
boolean newFile = false;
try {
newFile = file.createNewFile();
}catch (Exception e){
e.printStackTrace();
}
System.out.println("create new file is success? "+newFile);
}
// 结果
// false
// false
// make dir is success ?true
// create new file is success? true
代码执行完 D 盘目录下就会有刚刚创建的 Test 目录,Test 目录下就是 test.txt 文本文件,文件内容为空。
3、获取文件信息
在获取文件对象的相关信息主要会用到如下的方法,运行结果是建立在上面的代码运行后之上的。
@Test
public void test(){
// 文件对象
File file = new File("D:\\Test\\test.txt");
// 获取文件名
String name = file.getName();
System.out.println("name = "+name);
// 获取文件路径
String path = file.getPath();
System.out.println("path = "+path);
// 获取文件绝对路径
String absolutePath = file.getAbsolutePath();
System.out.println("absolutePath = "+absolutePath);
// 获取文件的上一级目录
String parent = file.getParent();
System.out.println("parent = "+parent);
// 判断文件在磁盘是否存在
boolean exists = file.exists();
System.out.println("exists = "+exists);
// 判断文件是否可以读写
boolean b = file.canRead();
boolean b1 = file.canWrite();
System.out.println("canRead = "+b);
System.out.println("canWrite = "+b1);
// 判断文件是否是文件、目录
boolean file1 = file.isFile();
boolean directory = file.isDirectory();
System.out.println("isFile = "+file1);
System.out.println("isDir = "+directory);
// 获取文件最后修改时间
long lastModified = file.lastModified();
System.out.println("lastModified = "+lastModified);
// 获取文件长度
long length = file.length();
System.out.println("length = "+length);
}
// 结果
// name = test.txt
// path = D:\Test\test.txt
// absolutePath = D:\Test\test.txt
// parent = D:\Test
// exists = true
// canRead = true
// canWrite = true
// isFile = true
// isDir = false
// lastModified = 1643340681233
// length = 0
4、修改文件信息
修改文件信息主要就是修改名字,示例代码如下:
@Test
public void test1(){
// 文件对象
File file = new File("D:\\Test\\test.txt");
// 修改文件名
boolean b = file.renameTo(new File("D:\\Test\\Demo.txt"));
System.out.println("rename = "+b);
}
5、删除文件和目录
删除文件和文件夹可以通过两种方式,方式一:delete 方法直接删除,方式二:通过钩子删除。delete 方法很好理解,就是代码执行到这个方法,这个方法执行完毕文件就删除了,钩子就有点特殊,它是 deleteOnExit() 方法,该方法是当 Java 虚拟机退出时才去执行。也就是说 Java 程序执行完了,对应要删除的文件就会被删除。
@Test
public void test2(){
// 文件对象
File file = new File("D:\\Test\\Demo.txt");
// 目录对象
File fileDir = new File("D:\\Test");
// 直接通过delete删除
boolean delete = file.delete();
System.out.println("delete = "+delete);
// 通过钩子删除
fileDir.deleteOnExit();
}
6、File 类其他方法
File 类除了上面的示例方法其实还有很多方法,还包括从 Object 类那里继承的方法,详情去查询 API,用的多了也就记住了。