File类是对文件或者目录的一系列操作。如文件和目录的创建、检查、删除、路径获取等。现介绍下常用构造方法和方法。
一、构造方法。
File类提供了多个构造方法来创建File对象,以表示文件或目录。
1. File(String pathname)
通过指定文件路径名创建File对象。
- 参数:pathname为文件的路径名,也可以是一个纯目录,可以是绝对路径或者相对路径。
2. File(String parent, String child)
通过指定父路径和子路径创建File对象。
- 参数:parent为父路径名,child为子路径名。
3. File(File parent, String child)
通过指定父File对象和子路径创建File对象。
- 参数:parent为父File对象,child为子路径名。
创建c:\example\exapmle.txt文件
File parentDir = new File("C:\\example");
File file = new File(parentDir, "example.txt");
三、常用方法
Java中的File类提供了许多常用的方法,用于操作文件和目录。
exists():检查文件或目录是否存在。
createNewFile():创建新文件。如果文件已经存在,则不会创建,并返回false。
mkdir():创建目录。如果目录已经存在,则不会创建,并返回false。
mkdirs():创建目录,包括所有必要的父目录。
delete():删除文件或目录。
getName():获取文件或目录的名称。
getPath():获取文件或目录的路径。
isFile():检查File对象是否表示一个文件。
isDirectory():检查File对象是否表示一个目录。
length():获取文件的大小。
list():返回目录中的文件和目录名数组。
listFiles():返回目录中的文件和目录对象数组。
相关代码:
public static void main(String[] args) {//D:\temp\新建文件夹目录下的文件及目录结构如下//D:\temp\新建文件夹\aaa.txt// D:\temp\新建文件夹\xx.txt// D:\temp\新建文件夹\vv// D:\temp\新建文件夹\vv\zzz.txtfileTest("D:\\temp\\新建文件夹");//获取D:\temp\新建文件夹目录及子目录下所有文件名的绝对路径List<String> dirname = getDirAllFile("D:\\temp\\新建文件夹");System.out.println("dirname = " + dirname.toString());}public static void fileTest(String path){File file = new File(path);//获取path目录(只能是目录,不能包含文件名)下的File对象(文件/目录对象),// 且只能获取当前目录下,不能获取子目录下File[] files = file.listFiles();for (File f : files){String fName = f.getName();String absolutePath = f.getAbsolutePath();System.out.println("fName = " + fName + " ,absolutePath=" + absolutePath + " ,Filetostr=" + f.toString());System.out.println("isFile = " + f.isFile() + " ,isDir=" + f.isDirectory() + " isExist=" + f.exists());System.out.println("getPath = " + f.getPath() + " ,parentPath=" + f.getParent());}//获取path目录(只能是目录,不能包含文件名)下的File对象的名字,不包含目录// 且只能获取当前目录下,不能获取子目录下String[] list = file.list();for (String str : list){System.out.println("str = " + str);}}//获取某目录及子目录下所有文件的绝对路径
public static List<String> getDirAllFile(String path){File file = new File(path);File[] files = file.listFiles();List<String> rt = new ArrayList<>();for (File f : files){if(!f.isDirectory()){rt.add(f.getAbsolutePath());}}for (File ff : files){if (ff.isDirectory()){rt.addAll(getDirAllFile(ff.getAbsolutePath()));}}return rt;}
输出: