Java中的File
文章目录前言一、File的常见构造方法二、File中常见的成员方法三、综合练习1.创建文件2.单个文件夹中查找文件3.找到电脑中所有以.txt结尾的文件。需要考虑子文件夹4. 删除一个多级文件夹5.统计一个文件夹中每种文件的个数并打印考虑子文件夹前言File是Java中用于表示文件和文件夹路径的类。它既可以表示一个文件的路径也可以表示一个文件夹的路径。通过File对象我们可以对文件或文件夹进行创建、删除、获取信息等操作。java.io.File 是 Java 中用于表示文件或目录路径名的类。它位于 java.io 包下实现了 Serializable 和 Comparable 接口。一、File的常见构造方法方法名称说明public File(String pathname)根据文件路径创建文件对象public File(String parent,String child)根据父路径名和子路径名创建文件对象public File(File parent,String child)根据父路径对应文件对象和子路径名创建文件对象// 1.根据字符串表示的路径创建文件对象StringpathnameD:\\WORK\\Study\\a.txt;FilefilenewFile(pathname);System.out.println(file);//D:\WORK\Study\a.txt// 2.父级路径D:\WORK\Study 子路径a.txtStringparentD:\\WORK\\Study;Stringchilda.txt;Filefile1newFile(parent,child);System.out.println(file1);//D:\WORK\Study\a.txt// 3.把File表示的路径和字符串表示的路径拼接Filefile2newFile(D:\\WORK\\Study);Stringchild2a.txt;Filefile3newFile(file2,child2);System.out.println(file3);//D:\WORK\Study\a.txt二、File中常见的成员方法方法名称说明public boolean isDirectory()判断此路径名表示的File是否为文件夹public boolean isFile()判断此路径名表示的File是否为文件public boolean exists()判断此路径名表示的File是否存在public long length()返回文件的大小字节数量public String getAbsolutePath()返回文件的绝对路径public String getPath()返回定义文件时使用的路径public String getName()返回文件的名称带后缀public long lastModified()返回文件最后修改的时间时间毫秒值public boolean createNewFile()创建一个新的空的文件public boolean mkdir()创建单级文件夹public boolean mkdirs()创建多级文件夹public boolean delete()删除文件空文件夹public File[] listFiles()获取当前路径下所有内容public static File[] listRoots()列出可用的文件系统根获取系统中所有的盘符public String[] list()获取当前路径下的所有内容仅获取名字public String[] list(FilenameFilter filter)利用文件名过滤器获取当前该路径下的所有内容public String[] listFiles()获取当前路径下的所有内容public String[] listFiles(FileFilter filter)利用文件名过滤器获取当前该路径下的所有内容public String[] listFiles(FilenameFilter filter)利用文件名过滤器获取当前该路径下的所有内容三、综合练习1.创建文件FilefilenewFile(D:\\WORK\\Study\\aaa);if(!file.exists()){file.mkdirs();//如果文件不存在创建多级文件夹}Filefile1newFile(file,aaa.txt);booleanbfile1.createNewFile();//创建一个新的空的文件if(b){System.out.println(创建成功);}else{System.out.println(创建失败);}2.单个文件夹中查找文件定义一个方法找某一个文件夹中是否有以.txt结尾的文件publicstaticvoidmain(String[]args){FilefilenewFile(D:\\WORK\\Study\\aaa);booleanbhaveTxt(file);System.out.println(b);}publicstaticbooleanhaveTxt(Filefile){File[]fosfile.listFiles();//获取当前路径下的所有内容for(Filefo:fos){if(fo.getName().endsWith(.txt)){returntrue;}}returnfalse;}3.找到电脑中所有以.txt结尾的文件。需要考虑子文件夹publicstaticvoidmain(String[]args){haveTxt();}publicstaticvoidhaveTxt(){File[]fileFile.listRoots();for(Filef:file){haveTxt(f);}}publicstaticvoidhaveTxt(Filefile){File[]fosfile.listFiles();//获取当前路径下的所有内容if(fos!null){for(Filefo:fos){if(fo.isFile()){if(fo.getName().endsWith(.txt)){System.out.println(fo.getName());}}else{haveTxt(fo);}}}}4. 删除一个多级文件夹publicstaticvoidmain(String[]args){FilefilenewFile(D:\\WORK\\Study\\aaa);delete(file);}//删除aaa的文件夹publicstaticvoiddelete(Filefile){File[]fosfile.listFiles();//获取当前路径下的所有内容if(fos!null){for(Filefo:fos){if(fo.isFile()){fo.delete();}else{delete(fo);}}}file.delete();}5.统计一个文件夹中每种文件的个数并打印考虑子文件夹publicstaticvoidmain(String[]args){FilefilenewFile(D:\\WORK);HashMapString,IntegerfileCountgetFileCount(file);System.out.println(fileCount);}publicstaticHashMapString,IntegergetFileCount(Filefile){HashMapString,IntegermapnewHashMapString,Integer();File[]filesfile.listFiles();if(files!null){for(Filef:files){if(f.isFile()){Stringnamef.getName();String[]splitname.split(\\.);if(split.length2){StringendNamesplit[split.length-1];if(map.containsKey(endName)){intcountmap.get(endName);count;map.put(endName,count);}else{map.put(endName,1);}}}else{HashMapString,IntegersonMapgetFileCount(f);SetMap.EntryString,IntegerentriessonMap.entrySet();for(Map.EntryString,Integerentry:entries){Stringkeyentry.getKey();intvalueentry.getValue();if(map.containsKey(key)){intcountmap.get(key);countvalue;map.put(key,count);}else{map.put(key,value);}}}}}returnmap;}

相关新闻

Sen3卫星数据处理全流程:从下载到Python自动化

Sen3卫星数据处理全流程:从下载到Python自动化

## 1. 项目概述:Sen3卫星数据全流程处理指南Sen3(Sentinel-3)是欧洲航天局哥白尼计划中的重要地球观测卫星,携带OLCI(海洋与陆地颜色成像仪)和SLSTR(海陆表面温度辐射计)等传感器。作…

2026/11/1 19:00:59 阅读更多 →
使用 Argo Workflows 在 Kubernetes 上编排 Kedro 流水线:容器化、DAG 生成与集群部署实战

使用 Argo Workflows 在 Kubernetes 上编排 Kedro 流水线:容器化、DAG 生成与集群部署实战

使用 Argo Workflows 在 Kubernetes 上编排 Kedro 流水线:容器化、DAG 生成与集群部署实战 【免费下载链接】kedro Kedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and …

2026/11/1 19:01:06 阅读更多 →
在线ADP中的持续激励条件:从伪收敛到工程注入策略

在线ADP中的持续激励条件:从伪收敛到工程注入策略

做在线自适应动态规划(ADP)的人,多少都吃过持续激励(Persistence of Excitation, PE)条件的亏。我印象最深的一次是在离线仿真里,Critic 网络权值曲线收敛得又平又稳,误差也压到了 10 的负四次方…

2026/11/5 22:57:03 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/6 15:21:35 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/7 12:08:40 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/6 22:01:11 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/6 22:01:11 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/7 12:08:40 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/6 22:01:09 阅读更多 →

日新闻

周新闻

月新闻