File类的使用
概念:代表物理盘符中的一个文件或者文件夹
小案例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | package com.iopractise; import java.io.File; import java.io.FileFilter; import java.io.IOException; import java.util.Date; /** * File类的使用 * 1.分隔符 * 2.文件操作 * 3.文件夹操作 */ public class Demo19 { public static void main(String[] args) throws Exception { // separator(); // fileOper(); directoryOpe(); } // 1. 分隔符 public static void separator() { System.out.println( "路径分隔符" + File.pathSeparator); System.out.println( "名称分隔符" + File.separator); } public static void fileOper() throws IOException { // 1. 创建文件 File file = new File( "file.txt" ); if (!file.exists()) { // 是否存在 boolean b = file.createNewFile(); System.out.println( "创建结果:" + b); } // 2. 删除文件 // 2.1 直接删除 boolean deleteFlag = file.delete(); // 成功true System.out.println( "文件删除是否成功:" + deleteFlag); // 2.2 使用jvm退出时删除 file.deleteOnExit(); //这个方法最后是没有返回值的 // 3. 获取文件信息 System.out.println( "获取绝对路径" + file.getAbsolutePath()); System.out.println( "获取路径" + file.getPath()); //该方法获取的是文件的相对路径 System.out.println( "获取文件名称" + file.getName()); System.out.println( "获取夫目录" + file.getParent()); System.out.println( "获取文件长度" + file.length()); System.out.println( "文件创建时间" + new Date(file.lastModified()).toLocaleString()); // 4. 判断 System.out.println( "是否可写" + file.canWrite()); System.out.println( "是否是文件" + file.isFile()); System.out.println( "是否隐藏" + file.isHidden()); } // 文件夹操作 public static void directoryOpe() throws Exception{ // 1. 创建文件夹 File dir = new File( "d:\\aaa\\bbb\\ccc" ); System.out.println( "文件目录:" +dir.toString()); if (!dir.exists()){ //dir.mkdir(); // 只能创建单级目录 dir.mkdirs(); // 创建多级目录 } // 2. 删除文件夹 // 2.1 直接删除 boolean deleteFlag = dir.delete(); // 只能删除最底层空目录 System.out.println( "文件夹是否删除成功:" +deleteFlag); //这里只会删除ccc这层目录,如果ccc目录下还有其他文件,这个时候,ccc目录是不会删除的。 // 2.2 使用jvm删除 dir.deleteOnExit(); // 3. 获取文件夹信息 System.out.println( "获取绝对路径" + dir.getAbsolutePath()); System.out.println( "获取路径" + dir.getPath()); //File(文件的路径),该方法返回的是括号中的文件路径 System.out.println( "获取文件名称" + dir.getName()); System.out.println( "获取父目录" + dir.getParent()); System.out.println( "获取文件长度" + dir.length()); System.out.println( "文件夹创建时间" + new Date(dir.lastModified()).toLocaleString()); // 4. 判断 System.out.println( "是否是文件夹" + dir.isDirectory()); System.out.println( "是否隐藏" + dir.isHidden()); // 5. 遍历文件夹 File dir2 = new File( "D:\\图纸" ); String[] files = dir2.list(); for (String string : files){ System.out.println(string); } System.out.println( "================FileFilter接口的使用==================" ); // FileFilter接口的使用 File[] files2 = dir2.listFiles( new FileFilter(){ public boolean accept(File pathname){ if (pathname.getName().endsWith( ".xmind" )){ return true ; } return false ; } }); for (File file : files2){ System.out.println(file.getName()); } } } |
注意:File.length()方法获取的是文件的大小。(通俗的讲)
FileFilter接口
Public interface FileFilter
.boolean accept(File pathname)
.当调用File类中listFiles()方法的时候,支持传入FileFilter接口接口实现类,对获取文件进行过滤,只有满足条件的文件的才可以出现在listFiles()的返回值中。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY