JavaSE-17.1【File类,File类的构造方法、创建功能、判断和获取功能、删除功能】
1 package day8.lesson1; 2 3 import java.io.File; 4 5 /* 6 1 File类 7 8 1.1 File类概述和构造方法 9 10 File类介绍 11 它是文件和目录路径名的抽象表示 12 文件和目录是可以通过File封装成对象的 13 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以 14 是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的 15 16 File类的构造方法 17 File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例 18 File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的 File实例 19 File(File parent, String child) 从父抽象路径名和子路径名字符串创建新的 File实例 20 21 */ 22 public class FileDemo1 { 23 public static void main(String[] args) { 24 File f1 = new File("D:\\Workspace-java\\idea\\Workspaces\\itheima-javase\\stage2\\src\\day8\\lesson1\\java.txt"); 25 System.out.println(f1); 26 //D:\Workspace-java\idea\Workspaces\itheima-javase\stage2\src\day8\lesson1\java.txt 27 //没输出对象地址,说明File类重写了toString() 28 29 File f2 = new File("D:\\Workspace-java\\idea\\Workspaces\\itheima-javase\\stage2\\src\\day8\\lesson1", "java.txt"); 30 System.out.println(f2); 31 //D:\Workspace-java\idea\Workspaces\itheima-javase\stage2\src\day8\lesson1\java.txt 32 33 File f3 = new File("D:\\Workspace-java\\idea\\Workspaces\\itheima-javase\\stage2\\src\\day8\\lesson1"); 34 File f4 = new File(f3, "java.txt"); 35 System.out.println(f4); 36 //D:\Workspace-java\idea\Workspaces\itheima-javase\stage2\src\day8\lesson1\java.txt 37 } 38 }
1 package day8.lesson1; 2 3 import java.io.File; 4 import java.io.IOException; 5 6 /* 7 8 1.2 File类创建功能 9 10 public boolean createNewFile() 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件 11 public boolean mkdir() 创建由此抽象路径名命名的目录 12 public boolean mkdirs() 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录 13 */ 14 public class FileDemo2 { 15 public static void main(String[] args) throws IOException { 16 String base_path = "D:\\Workspace-java\\idea\\Workspaces\\itheima-javase\\stage2\\src\\day8\\lesson1\\"; 17 18 //需求1:在当前目录下创建一个文件java.txt 19 File f1 = new File(base_path + "java.txt"); 20 System.out.println(f1.createNewFile()); 21 //注意:createNewFile()需要抛出异常,alt+回车生成throws或者手动try-catch也行 22 //若文件不存在,则创建文件,返回true 23 //若文件存在,则创建失败,返回false 24 25 //需求2:在当前目录下创建一个目录JavaSE 26 File f2 = new File(base_path + "javase"); 27 System.out.println(f2.mkdir()); 28 //若目录不存在,则创建目录,返回true 29 //若目录存在,则创建失败,返回false 30 31 //需求3:在当前目录下创建一个多级目录JavaWEB\\HTML 32 File f3 = new File(base_path + "javaweb\\html"); 33 // System.out.println(f3.mkdir()); //false mkdir()无法创建多级目录 34 System.out.println(f3.mkdirs()); 35 //若目录不存在,则创建目录,返回true 36 //若目录存在,则创建失败,返回false 37 38 //需求4:在当前目录下创建一个文件javase.txt 39 File f4 = new File(base_path + "javase.txt"); 40 // System.out.println(f4.mkdir()); //true 41 //注意:要用f4调用的方法来判断要创建文件还是目录,只看给出的路径字符串不靠谱 42 // System.out.println(f4.createNewFile()); //false 43 //注意:当前目录下已存在"javase.txt",即使它是一个目录,也不允许再创建同名文件 44 //总结:创建文件时只能用.createNewFile(),创建目录是只能用.mkdir()或.mkdirs() 45 } 46 }
1 package day8.lesson1; 2 3 import java.io.File; 4 5 /* 6 1.3 File类判断和获取功能 7 8 判断功能 9 public boolean isDirectory() 测试此抽象路径名表示的File是否为目录 10 public boolean isFile() 测试此抽象路径名表示的File是否为文件 11 public boolean exists() 测试此抽象路径名表示的File是否存在 12 13 获取功能 14 public String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串 15 public String getPath() 将此抽象路径名转换为路径名字符串 16 public String getName() 返回由此抽象路径名表示的文件或目录的名称 17 18 public String[] list() 返回此抽象路径名表示的目录中的文件和目录的名称字符串数组 19 public File[] listFiles() 返回此抽象路径名表示的目录中的文件和目录的File对象数组 20 */ 21 public class FileDemo3 { 22 public static void main(String[] args) { 23 String base_path = "D:\\Workspace-java\\idea\\Workspaces\\itheima-javase\\"; //当前项目根目录 24 25 File f1 = new File("stage2\\src\\day8\\lesson1\\java.txt"); 26 System.out.println(f1.isDirectory()); //false 27 System.out.println(f1.isFile()); //true 28 System.out.println(f1.exists()); //true 29 30 System.out.println(f1.getAbsoluteFile()); 31 //绝对路径 D:\Workspace-java\idea\Workspaces\itheima-javase\stage2\src\day8\lesson1\java.txt 32 System.out.println(f1.getPath()); 33 //抽象路径 stage2\src\day8\lesson1\java.txt 34 System.out.println(f1.getName()); //java.txt 35 36 System.out.println(); 37 File f2 = new File("stage2\\src\\day8\\lesson1"); 38 39 String[] strArr = f2.list(); 40 for (String s: strArr){ 41 System.out.println(s); 42 } 43 /* 44 FileDemo1.java 45 FileDemo2.java 46 FileDemo3.java 47 FileDemo4.java 48 java.txt 49 javase 50 javase.txt 51 javaweb 52 */ 53 54 System.out.println(); 55 File[] fileArr = f2.listFiles(); 56 for (File f: fileArr){ 57 // System.out.println(f); 58 // System.out.println(f.getName()); //效果同上f2.list()遍历 59 if(f.isFile()){ 60 System.out.println(f.getName()); //只输出文件名称,目录不输出 61 } 62 } 63 /* 64 stage2\src\day8\lesson1\FileDemo1.java 65 stage2\src\day8\lesson1\FileDemo2.java 66 stage2\src\day8\lesson1\FileDemo3.java 67 stage2\src\day8\lesson1\FileDemo4.java 68 stage2\src\day8\lesson1\java.txt 69 stage2\src\day8\lesson1\javase 70 stage2\src\day8\lesson1\javase.txt 71 stage2\src\day8\lesson1\javaweb 72 73 FileDemo1.java 74 FileDemo2.java 75 FileDemo3.java 76 FileDemo4.java 77 java.txt 78 */ 79 80 } 81 }
1 package day8.lesson1; 2 3 import java.io.File; 4 import java.io.IOException; 5 6 /* 7 1.4 File类删除功能 8 9 public boolean delete() 删除由此抽象路径名表示的文件或目录 10 11 绝对路径和相对路径的区别 12 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件。例如:E:\\itcast\\java.txt 13 相对路径:必须使用取自其他路径名的信息进行解释。例如:myFile\java.txt 14 */ 15 public class FileDemo4 { 16 public static void main(String[] args) { 17 /* 18 项目路径 19 D:\Workspace-java\idea\Workspaces\itheima-javase 20 模块路径 21 D:\Workspace-java\idea\Workspaces\itheima-javase\stage1 22 D:\Workspace-java\idea\Workspaces\itheima-javase\stage2 23 包路径 24 D:\Workspace-java\idea\Workspaces\itheima-javase\stage1\src\day? 25 D:\Workspace-java\idea\Workspaces\itheima-javase\stage2\src\day? 26 day?下的目录==子包 27 */ 28 29 //需求1:在当前模块目录下创建java.txt文件 30 File f1 = new File("stage2\\java.txt"); //与stage2下的src文件夹同级 31 // try { 32 // System.out.println(f1.createNewFile()); 33 // } catch (IOException e) { 34 // e.printStackTrace(); 35 // } 36 37 //需求2:删除当前模块目录下的java.txt文件 38 // System.out.println(f1.delete()); 39 40 //需求3:在当前模块目录下创建itcast目录 41 File f2 = new File("stage2\\itcast"); 42 // System.out.println(f2.mkdir()); 43 44 //需求4:删除当前模块目录下的itcast目录 45 // System.out.println(f2.delete()); 46 47 //需求5:在当前模块下创建一个目录itcast,然后在该目录下创建一个文件java.txt 48 File f3 = new File("stage2\\itcast"); 49 // System.out.println(f3.mkdir()); 50 File f4 = new File("stage2\\itcast\\java.txt"); //若路径不存在时,直接创建文件,会报异常 51 // try { 52 // System.out.println(f4.createNewFile()); 53 // } catch (IOException e) { 54 // e.printStackTrace(); 55 // } 56 57 //需求6:删除当前模块下的目录itcast 58 // System.out.println(f3.delete()); //false 目录下存在内容(子目录/文件)时,直接删目录删不掉 59 // 需要先清空目录下内容才能删该目录,即只能删除不包含内容的目录 60 61 // System.out.println(f4.delete()); 62 // System.out.println(f3.delete()); 63 } 64 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!