File类是用来操作文件的类,但它不能操作文件中的数据。例如:File对象可以获得文件信息、创建文件、删除文件、创建目录、删除目录等。但不能读写文件内容。
1.1 File类的构造方法
常用的有三种:
-
File(String pathname):通过路径名创建一个新 File 实例(对象)。
-
File(File parent, String child):根据父目录路径File实例和子目录或文件路径创建一个新 File 实例
-
File(String parent, String child) :根据父目录路径和子目录或文件路径创建一个新 File 实例。
1.2 File类的常用方法:
- exists():检查文件或目录是否存在。
- createNewFile():创建新文件。如果文件已经存在,则不会创建,并返回false。
- mkdir():创建目录。如果目录已经存在,则不会创建,并返回false。
- mkdirs():创建目录,包括所有必要的父目录。
- delete():删除文件或目录。
- getName():获取文件或目录的名称。
- getPath():获取文件或目录的路径。
- isFile():检查File对象是否表示一个文件。
- isDirectory():检查File对象是否表示一个目录。
- length():获取文件的大小。
- list():返回目录中的文件和目录名数组。
- listFiles():返回目录中的文件和目录对象数组。
public class Demo1 {
public static void main(String[] args) {
//1.构造文件对象
System.out.println("======构造文件对象=======");
File file = new File("D:\\filedemo\\资料.docx");
if (!file.exists()) {
System.out.println("构造文件对象不成功");
System.exit(1);//终止当前正在运行的Java虚拟机,不正常退出程序
}
System.out.println("成功构造了文件对象:" + file);
//2.访问文件属性信息
System.out.println("======访问文件属性信息======");
System.out.println("文件或目录是否存在:" + file.exists());
System.out.println("是文件吗:" + file.isFile());
System.out.println("是目录吗:" + file.isDirectory());
System.out.println("名称:" + file.getName());
System.out.println("路径:" + file.getPath());
System.out.println("绝对路径:" + file.getAbsolutePath());
System.out.println("文件父目录:" + file.getParentFile());
System.out.println("最终修改时间:" + new Date(file.lastModified()));
System.out.println("文件大小:" + file.length() + "字节");
System.out.println("文件是否可写:" + file.canWrite());
//3.文件操作
System.out.println("======文件操作======");
//===3.1创造文件
String fileName = "d:\\filedemo\\temp.txt";//定义文件名
File file2 = new File(fileName);//构造新文件
if (!file2.exists()) {
System.out.println("不存在文件:" + fileName + ",创造该文件");
try {
file2.createNewFile();
System.out.println("文件创建成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
//===3.2删除文件
System.out.println("删除文件:" + file2.delete());
//4.目录操作
System.out.println("===========目录操作===========");
//4.1列出目录下的所有文件
System.out.println("列出当前路径下的所有文件");
File dirFile = new File("d:\\filedemo");//指定路径
String[] files = dirFile.list();
for (String f : files) {
System.out.println("文件名:" + f);
}
//4.2创建目录
File newDir = new File("d:\\filedemo\\tempdir");
if (!newDir.exists()) {//目录不存在
newDir.mkdir();//创建新目录
}
if (newDir.exists()) {
newDir.delete();//删除空目录
}
}
}