File的概述-->
File常见的构造方法-->
代码示范--->
/* public File(String pathname) 根据文件路径创建文件对象 根据字符串表示的路径,创建File对象 */ String str = "E:\\java_code\\a.txt"; File f1 = new File(str); System.out.println(f1);//结果:E:\java_code\a.txt //public File(String parent, String child) 根据父路径名字符串和子路径名字符串创建文件 对象 String parent = "E:\\java_code"; String child = "a.txt"; File f2 = new File(parent, child); System.out.println(f2);//结果:E:\java_code\a.txt //public File(File parent, String child) 根据父路径对应文件对象和子路径名字符串创建文件对象 File f3 = new File("E:\\java_code"); String child2 = "a.txt"; File f4 = new File(f3, child2); System.out.println(f4);//结果:E:\java_code\a.txt
小结--->
File的成员方法-->
File的常见成员方法(判断、获取)--->
代码示范--->
先创建文件及文件夹准备-->
判断--->
//1.对一个文件的路径进行判断 File f1 = new File("E:\\Data\\aaa\\a.txt"); System.out.println(f1.isDirectory());//结果:false System.out.println(f1.isFile());//结果:true System.out.println(f1.exists());//结果:true System.out.println("----------------------------"); //2.对一个文件夹的路径进行判断 File f2 = new File("E:\\Data\\aaa\\bbb"); System.out.println(f2.isDirectory());//结果:true System.out.println(f2.isFile());//结果:false System.out.println(f2.exists());//结果:true System.out.println("----------------------------"); //3.对一个不存在的路径进行判断 File f3 = new File("E:\\Data\\aaa\\c.txt"); System.out.println(f3.isDirectory());//结果:false System.out.println(f3.isFile());//结果:false System.out.println(f3.exists());//结果:false
获取--->
/* 1.length 返回文件的大小(字节数量) 细节:只能获取文件的大小,如果单位要M、G,可以不断的除以1024 细节:这个方法无法获取文件夹的大小,如果要获取一个文件夹的大小,需要把这个文件夹里面所有的文件大小都累加在一起 */ File f1 = new File("E:\\Data\\aaa\\a.txt"); System.out.println(f1.length());//结果:22 File f2 = new File("E:\\Data\\aaa\\bbb"); System.out.println(f2.length());//结果:0 //2.getAbsolutePath 返回文件的绝对路径 File f3 = new File("E:\\Data\\aaa\\a.txt"); System.out.println(f3.getAbsolutePath());//结果:E:\Data\aaa\a.txt File f4 = new File("myFile\\a.txt"); System.out.println(f4.getAbsolutePath());//结果:E:\java_code\myFile\a.txt //3.getPath 返回定义文件时使用的路径 File f5 = new File("E:\\Data\\aaa\\a.txt"); System.out.println(f5.getPath());//结果:E:\Data\aaa\a.txt File f6 = new File("myFile\\a.txt"); System.out.println(f6.getPath());//结果:myFile\a.txt /* 4.getName 获取名字 细节:调用者是文件:返回文件名+后缀名 细节:调用者是文件夹:返回文件夹名 */ File f7 = new File("E:\\Data\\aaa\\a.txt"); System.out.println(f7.getName());//结果:a.txt File f8 = new File("E:\\aaa\\bbb"); System.out.println(f8.getName());//结果:bbb //lastModified 返回文件的最后修改时间(时间毫秒值) File f9 = new File("E:\\Data\\aaa\\a.txt"); System.out.println(f9.lastModified());//结果:1701698784865
File的常见成员方法(创建、删除)--->
代码示范--->
/* 1.createNewFile 创建一个新的空的文件 细节1:如果当前路径表示的文件是不存在的,则创建成功,方法返回ture 如果d当前路径表示的文件是存在的,则创建失败,方法返回false 细节2:如果父级路径是不存在的,那么方法会有异常IOException 细节3:createNewFile方法创建的一定是文件,如果路径中不包含后缀名,则创建一个没有后缀的文件 */ File f1 = new File("E:\\Data\\aaa\\c.txt"); boolean b1 = f1.createNewFile(); System.out.println(b1);//结果:true File f2 = new File("E:\\Data\\aaa\\ddd"); boolean b2 = f2.createNewFile(); System.out.println(b2);//结果:true /* 2.mkdir 创建单级文件夹 细节1:windows当中路径是唯一的,如果路径已经存在,则创建失败,返回false 细节2:mkdir方法只能创建单级文件夹,无法创建多级文件夹 */ File f3 = new File("E:\\Data\\aaa\\ddd"); boolean b3 = f3.mkdir(); System.out.println(b3);//结果:false File f4 = new File("E:\\Data\\aaa\\eee"); boolean b4 = f4.mkdir(); System.out.println(b4);//结果:true /* 3.mkdirs 创建多级文件夹 细节:既可以创建单级的,又可以创建多级的文件夹 */ File f5 = new File("E:\\Data\\aaa\\aaa\\bbb\\ccc"); boolean b5 = f5.mkdirs(); System.out.println(b5);//结果:true File f6 = new File("E:\\Data\\aaa\\ggg"); boolean b6 = f6.mkdirs(); System.out.println(b6);//结果:true /* 4.delete 删除文件、空文件夹(不进入回收站) 细节: 如果删除的是文件,则直接删除,不走回收站 如果删除的是空文件夹,则直接删除,不走回收站 如果删除的是有内容的文件夹,则删除失败 */ File f7 = new File("E:\\Data\\aaa\\a.txt"); boolean b7 = f7.delete(); System.out.println(b7);//结果:true File f8 = new File("E:\\Data\\aaa\\aaa"); boolean b8 = f8.delete(); System.out.println(b8);//结果:false File f9 = new File("E:\\Data\\aaa\\eee"); boolean b9 = f9.delete(); System.out.println(b9);//结果:true
File的常见成员方法(获取并遍历)--->
通常只会用到public File[] listFiles() 获取当前路径下所有内容
代码示范--->
/* public File[] listFiles() 获取当前路径下所有内容 细节: 当调用者File表示的路径不存在时,返回null 当调用者File表示的路径是文件夹时,返回null 当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组 当调用者File表示的路径是一个有内容的文件夹时,将里面的所有文件和文件夹的路径放在File数组中返回 当调用者File表示的路径是一个有隐藏文件的文件夹时,将里面的所有文件和文件夹的路径放在File数组中返回,包含隐藏文件 当调用者File表示的路径是一个需要权限才能访问的文件夹时,返回null */ //1.创建File对象 File f = new File("E:\\Data\\aaa"); //listFiles方法 File[] files = f.listFiles(); for (File file : files) { //file依次表示aaa文件夹里面的每一个文件或者文件夹 System.out.println(file); /* 结果: E:\Data\aaa\a.avi E:\Data\aaa\aaa E:\Data\aaa\b.txt E:\Data\aaa\bbb E:\Data\aaa\c.txt E:\Data\aaa\ccc E:\Data\aaa\ddd E:\Data\aaa\fff E:\Data\aaa\ggg */