前言
在Java中,File类是一个与文件和目录(文件夹)路径名相关的抽象表示形式。它是java.io包中的一个重要类,用于表示和操作文件系统中的文件和目录。
File类的基本概念
- 表示路径:File类既可以表示文件路径,也可以表示目录路径。它是文件和目录路径名的抽象表示。
- 封装:Java通过File类将文件或目录封装成对象,使得对文件和目录的操作变得更加直观和方便。
一、三种构造方法创建File实例
如何实现:
//三种创建File实例方法
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
//File(String pathname)通过将给定的路径名字符串转化为抽象路径名来创建新的File实例
File f1 = new File("E:\\itcast\\java.txt");
System.out.println(f1); //E:\itcast\java.txt 说明重写了
//从父路径名字符串和子路径名字符串创建新的File实例
File f2 = new File("E:\\itcast","java.txt");
System.out.println(f2); //E:\itcast\java.txt
//从父抽象路径名和子路径名字符串来创建新的File实例
File f3 = new File("E:\\itcast");
File f4 = new File(f3,"java.txt");
System.out.println(f4); //E:\itcast\java.txt
}
}
二、File类创建文件和目录
一些常用方法:
public boolean createNewFile()//当具有该名称的文件不存在时,创建一个由该抽象路径名命名的空文件
public boolean mkdir()创建由此抽象路径名命名的路径
public boolean mkdirs()创建由此抽象路径名命名的路径,包括任何必须但不存在的父目录
//注意三个方法都是布尔类型,创建成功返回true,创建失败返回false
如何使用:
import java.io.File;
import java.io.IOException;
public class FileDemo_02 {
public static void main(String[] args) throws IOException {
//1、在E:\\itcast目录下创建一个文件java.txt
File f1 = new File("E:\\itcast\\java.txt");
System.out.println(f1.createNewFile());
//2、在E:\\itcast目录下创建一个目录JavaSE
File f2 = new File("E:\\itcast\\JavaSE");
System.out.println(f2.mkdir());
//3、在E:\\itcast目录下创建多级目录JavaWEB\\HTML
File f3 = new File("E:\\itcast\\JavaWEB\\HTML");
System.out.println(f3.mkdirs());
//注意同级目录下目录名和文件名都不能一样,否则会报错
}
}
三、文件和目录的删除
一般方法:
public boolean delete():删除文件或目录
如何使用:
import java.io.File;
import java.io.IOException;
public class FileDemo_04 {
public static void main(String[] args) throws IOException {
File f = new File("File");
File f1 = new File("File\\java.txt");
File f2 = new File("File\\itcast");
System.out.println(f.mkdir());//创建目录
System.out.println(f1.createNewFile());//创建文件
System.out.println(f2.mkdir());
//public boolean delete():删除文件或目录
//System.out.println(f.delete());//如果该目录下有其他文件或目录,则无法直接删除该目录
System.out.println(f1.delete());//一次只能删除一个
//System.out.println(f2.delete());
}
}
四、File类判断和获取功能
判断的方法:
public boolean isDirectory():测试此抽象路径名是否是目录
public boolean isFile():测试此抽象路径名是否是文件
public boolean exists():测试此抽象路径名表示的File是否存在
获取文件路径的方法:
public String getAbsolutePath():获取绝对路径
public String getPath()//将此抽象路径转换为路径名字符串
public String getName()//返回此路径名表示的文件或目录
获取当前目录下所有的文件:
public String[] list():返回此路径名下的所有文件和目录名的字符串数组
public File[] listFiles():返回此路径名下的所有文件和目录名的地址字符串数组
如何使用:
public class FileDemo_03 {
public static void main(String[] args) {
//public boolean isDirectory():测试此抽象路径名是否是目录
//public boolean isFile():测试此抽象路径名是否是文件
//public boolean exists():测试此抽象路径名表示的File是否存在
File f1 = new File("java.txt");
System.out.println(f1.isDirectory());//false
System.out.println(f1.isFile());//true
System.out.println(f1.exists());//true
//public String getAbsolutePath():获取绝对路径
//public String getPath()//将此抽象路径转换为路径名字符串
//public String getName()//返回此路径名表示的文件或目录
System.out.println(f1.getAbsolutePath());
System.out.println(f1.getPath());
System.out.println(f1.getName());
System.out.println("--------");
//public String[] list():返回此路径名下的所有文件和目录名的字符串数组
//public File[] listFiles():返回此路径名下的所有文件和目录名的地址字符串数组
File f2 = new File("E:\\itcast");
String[] str1 = f2.list();
for(String str:str1)
System.out.println(str);
System.out.println("--------");
File[] str2 = f2.listFiles();
for(File str:str2)
System.out.println(str);
}
}