File类的使用
File类用来代表文件和文件夹。主要作用有两个:获取文件或者文件夹的属性; 实现对文件、文件夹的创建和删除。 文件夹:file folder 目录:directory
使用File获取文件或文件夹属性:
package com.bisxt.file;
import java.io.File;
import java.util.Date;
/*
功能一:获取文件或文件夹的属性
*/
public class TestFile1 {
public static void main(String[] args) {
//创建一个File对象指向一个文件或者文件夹
File file = new File("E:/softwareInstall/mysql");//这里正/、反\都行,但要注意转义字符\
//获取文件或者文件夹的属性
System.out.println(file.getName());
System.out.println(file.getAbsolutePath());
System.out.println(file.exists());
System.out.println(file.length());
System.out.println(file.isFile());
System.out.println(file.isDirectory());
//最后修改时间
System.out.println(new Date(file.lastModified()).toLocaleString());
System.out.println(file.canExecute());
System.out.println(file.canRead());
System.out.println(file.canWrite());
System.out.println("======================================");
File[] files=file.listFiles();
System.out.println(files.length);
for (int i = 0; i < files.length; i++) {
System.out.print(new Date(files[i].lastModified()).toLocaleString()+"\t");//修改的时间
if (files[i].isFile()) {
System.out.print("文件\t\t\t");//类型
System.out.print(files[i].length()+"\t\t");//长度
} else {
System.out.print("文件夹\t\t\t");
System.out.print("\t\t");//长度
}
System.out.println(files[i].getName());
}
}
}
/*
output:
mysql
E:\softwareInstall\mysql
true
4096
false
true
2020-9-17 9:43:48
true
true
true
======================================
15
2020-9-17 9:37:25 文件夹 bin
2014-9-8 11:53:18 文件 17987 COPYING
2020-9-17 9:37:26 文件夹 data
2020-9-17 9:37:26 文件夹 docs
2020-9-17 9:37:27 文件夹 include
2020-9-17 9:37:28 文件夹 lib
2014-9-8 11:56:30 文件 4829 my-huge.ini
2014-9-8 11:56:30 文件 20238 my-innodb-heavy-4G.ini
2014-9-8 11:56:30 文件 4803 my-large.ini
2014-9-8 11:56:30 文件 4812 my-medium.ini
2014-9-8 11:56:30 文件 2921 my-small.ini
2010-4-1 17:58:20 文件 13128 my-template.ini
2020-9-17 9:43:48 文件 8901 my.ini
2014-9-8 11:53:18 文件 2496 README
2020-9-17 9:37:28 文件夹 share
*/
使用File类新建、删除文件和文件夹:
package com.bisxt.file;
import java.io.File;
import java.io.IOException;
/*
功能二:创建、删除文件或者文件夹
*/
public class TestFile2 {
public static void main(String[] args) {
File file = new File("g:/sxt/java/file/readme.txt");
if (file.exists()) {
file.delete();
} else {
//如果文件所在的文件夹不存在,需要先创建
File dir = file.getParentFile();
if (!dir.exists()){
dir.mkdirs();//创建文件夹,可以是一个或者多个
}
try {
file.createNewFile();//创建文件
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
注意:
- File不仅可以指向一个文件,也可以指向一个文件夹(作为一个文件对待)
- File不能对文件的内容进行操作,需要借助IO流实现