File类操作文件方法详解及其简单应用

一、File 类介绍

  • Java 中的 File 类是 java.io 包的一部分,它提供了操作文件和目录的能力。File 类可以用来表示文件系统中的文件或目录。

二、路径

在讲File用法之前咱们先介绍一下路径是什么?

在计算机中,路径(Path)是指文件或目录在文件系统中的位置。
路径可以分为两种:绝对路径(Absolute Path)和相对路径(Relative Path)。

绝对路径(Absolute Path)

绝对路径是指从文件系统的根目录(Root Directory)开始,到达文件或目录的完整路径。

  • 根目录就是咱们电脑的C盘或者D盘等等盘

    • 例如:我电脑的上这个Java笔记的绝对路径就是:D:\Java笔记
      在这里插入图片描述
  • 绝对路径的优点是:

    • 它是指向文件唯一的位置
    • 它可以在任何目录下使用
    • 用绝对路径肯定能找到该文件

相对路径(Relative Path)

  • 相对路径是指从当前目录开始,到达文件或目录的路径。

  • 例如:HashMap底层原理.md文件相对于Java笔记来说的相对路径就是:\资源\HashMap底层原理.md

在这里插入图片描述

  • 相对路径的优点是:

    • 它可以简化路径的书写

知道了路径的概念,那么接下就步入正题:File的使用

二、File 类的构造方法

File 类有多个构造方法,可以根据不同的需求选择合适的构造方法:

方法名方法描述
File(String pathname)创建一个 File 对象,pathname 是文件或目录的路径
File(String parent, String child)创建一个 File 对象,parent 是父目录,child 是文件或目录的名称
File(File parent, String child)创建一个 File 对象,parent 是父目录的 File 对象,child 是文件或目录的名称
File(URI uri)通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例

主要使用的是前三个,下面来具体演示一下:
在这里插入图片描述

三、File 类的常用方法

File 类提供了许多方法来操作文件和目录,以下是一些常用的方法:

创建文件/文件夹

方法名方法描述
createNewFile()创建文件
mkdir():创建一个单层文件夹
mkdirs():创建一个多层文件夹
  • 具体演示:

在这里插入图片描述

注意:这里的路径是相对路径,是相对于当前Java项目的,使用绝对路径就可以在你想创建的地方创建

获取

方法名方法描述
getPath():获取文件或目录的路径。
getAbsolutePath()获取文件或目录的绝对路径。
getName()获取文件或目录的名称。
getParent()获取文件或目录的父目录。
list():获取路径中的文件和目录。
listFiles()获取中的文件和目录。
  • 具体演示:
    在这里插入图片描述

判断删除

方法名方法描述
exists()判断文件或目录是否存在。
isFile()判断是否是一个文件。
isDirectory()判断是否是一个目录。
delete()删除文件或目录。
renameTo()重命名文件或目录。
canRead()判断文件或目录是否可读。
canWrite()判断文件或目录是否可写。
canExecute()判断文件或目录是否可执行。
  • 具体演示:
    在这里插入图片描述

四、File类方法的应用

删除文件或者整个文件夹

File中的delete()只能删除文件或者空文件夹,那如何删除有文件的文件夹呢?

  • 思路:既然只能delete()只能删除文件或者空文件夹,那么就先把文件夹最里面的文件/空文件夹删除,最里面的删除完了,那外面的文件夹不就成为一个空的文件夹了,那就可以用delete()删除了。
  • 如何进入里面删除呢,我们又不知道这个文件夹有几层?
  • 这个时候你是否想到递归了呢?

下面就是经典使用递归删除文件的方法

  public static void deleteFile(String path){
        File file = new File(path);
        if (file.delete()) {//如果是个文件或空文件夹,直接删除,删除成功返回true,return退出,否则,提取出文件夹中的文件/文件夹列表
            return;
        }
        File[] files = file.listFiles();// 提取出文件夹中的文件/文件夹列表
        for (File file1 : files) {// 遍历文件/文件夹列表
            deleteFile(file1.toString());//再次调用,直至到达文件或空文件夹
        }
        file.delete();//递归出来,删除最外层的文件夹

    }

最后

如果感觉有收获的话,点个赞 👍🏻 吧。
❤️❤️❤️本人菜鸟修行期,如有错误,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/685865.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python中__init__.py文件的作用

作用 在Python中,__init__.py 文件有几个重要的作用,主要与包的管理和模块的导入相关。具体来说,它有以下几个功能: 标识包: __init__.py 文件存在的主要目的是标识包含它的目录是一个Python包。没有这个文件,Python解释器不会将该目录视为包的一部分。因此,即使文件夹中…

王炸级产品:字节跳动的Seed-TTS

在人工智能的快速发展中,文本到语音(TTS)技术已成为连接数字世界与人类沟通的重要桥梁。而字节跳动推出的Seed-TTS模型,无疑是这一领域的一个突破性进展,它以其卓越的性能和高度的自然度,被誉为TTS模型中的…

翻译《The Old New Thing》- What’s with this MSH_MOUSEWHEEL message?

Whats with this MSH_MOUSEWHEEL message? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20080806-00/?p21353 Raymond Chen 2008年06月06日 MSH_MOUSEWHEEL 消息是怎么回事? 硬件团队正在研发一种鼠标滚轮设备,并…

14 个必须了解的微服务设计原则

想象一下,一个机场有各种各样的业务,每个部门都是一个精心设计的微服务,专门用于预订、值机和行李处理等特定操作。机场架构必须遵循这个精心设计的架构的基本设计原则,反映微服务的原则。 例如,航空公司独立运营&…

什么是视频号招商团长?如何加入成为视频号招商团长

视频号招商团长,是通过微信视频号平台的线上和线下活动,撮合商家和达人进行合作,帮助商家、达人在视频号成长发展;同时还可以通过邀请内容创作者入驻微信视频号并为其提供支持;从而获取佣金收益的,而其作用…

【西瓜书】4.决策树

1 递归返回情况 (1)结点包含样本全为同一类别 (2)属性集为空,没有属性可供划分了 或 有属性,但是在属性上划分的结果都一样 (3)结点为空结点 **结束时判定该结点的类别遵循如下规则&…

Orange Pi AI Pro 开箱 记录

香橙派 AIpro(OrangePi AIpro)是一款面向AI开发的强大开发板,提供了高性能和多功能的开发环境。我将结合自己的开发经验,详细介绍这款开发板的性能、适用场景及使用体验。 一、产品概述 香橙派 AIpro配备了强大的硬件配置&#…

101、对称二叉树

给你一个二叉树的根节点 root , 检查它是否轴对称。 题解:要确认是否对称,其实就是要同时遍历左右两边的子树,若某一侧的某个节点与其对称的节点不同,则返回false。 先比较根节点的左右节点,若相同则开始递…

Python 识别图片形式pdf的尝试(未解决)

想识别出pdf页面右下角某处的编号。pdf是图片形式页面。查了下方法,有源码是先将页面提取成jpg,再用pytesseract提取图片文件中的内容。 直接用图片来识别。纯数字的图片,如条形码,可识别。带中文的不可以,很乱。 识别…

uniapp小程序src引用服务器图片时全局变量与图片路径拼接

理论上&#xff0c;应该在main.js中定义一个全局变量&#xff0c;然后在页面的<image>标签上的是src直接使用即可 main.js 页面上 看上去挺靠谱的&#xff0c;实际上小程序后台会报一个错 很明显这种方式小程序是不认的&#xff0c;这就头疼了&#xff0c;还想过另外一个…

Linux本地搭建DataEase并发布公网远程访问进行数据分析

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具&#xff0c;帮助用户快速分析数据并洞察业务趋势&#xff0c;从而实现业务…

MySQL之查询性能优化(八)

查询性能优化 MySQL查询优化器的局限性 MySQL的万能"嵌套循环"并不是对每种查询都是最优的。不过还好&#xff0c;MySQL查询优化器只对少部分查询不适用&#xff0c;而且我们往往可以通过改写查询让MySQL高效地完成工作。还有一个好消息&#xff0c;MySQL5.6版本正…

JavaWeb3 Ajax+Axios+Element+Nginx部署

Ajax 异步JS和XML 1.数据交换&#xff1a;给服务器发送请求&#xff0c;并获取服务器相应的数据 2.异步交互&#xff1a;在不重新加载整个页面的情况下&#xff0c;与服务器交换数据并更新部分网页 同步与异步 原生Ajax <!DOCTYPE html> <html> <body><…

德国80%的统计学教授都会答错的6个与P值有关的问题!

小编阅读了一篇发表于2002年关于P值的一项问卷调查研究 [1]&#xff0c;作者在6所德国大学中邀请了3组不同的受试者&#xff0c;分别为: 心理学专业的学生(n 44)&#xff1b;主要从事科学研究但不进行统计相关教学的教授和讲师(n 39)&#xff1b;进行统计相关教学的教授和讲师…

vs2022专业版永久密钥

vs2022专业版永久密钥&#xff1a; vs2022专业版永久密钥&#xff1a; Visual Studio 2022 Enterprise&#xff1a;VHF9H-NXBBB-638P6-6JHCY-88JWH Visual Studio 2022 Professional&#xff1a;TD244-P4NB7-YQ6XK-Y8MMM-YWV2J

大模型高级 RAG 检索策略之混合检索

古人云&#xff1a;兼听则明&#xff0c;偏信则暗&#xff0c;意思是要同时听取各方面的意见&#xff0c;才能正确认识事物&#xff0c;只相信单方面的话&#xff0c;必然会犯片面性的错误。 在 RAG&#xff08;Retrieval Augmented Generation&#xff09;应用中也是如此&…

UE Editor API 整理

UE Editor API 整理 过一下 https://github.com/20tab/UnrealEnginePython/blob/master/docs/&#xff0c;熟悉一下编辑器 API&#xff0c;方便后续编辑器脚本开发 后续的目标是所有编辑器操作应该都可以脚本化&#xff08;自动化&#xff09;&#xff0c;这样把 GPT 接进 UE…

WEB-Wordlist-Generator:为扫描后的Web应用生成相关联的字典

关于WEB-Wordlist-Generator WEB-Wordlist-Generator是一款功能强大的字典生成工具&#xff0c;该工具旨在帮助广大研究人员扫描目标Web应用程序并生成与之相关联的字典文件&#xff0c;从而允许我们对相关的网络威胁行为执行预备性应对策略。 功能介绍 当前版本的WEB-Wordli…

CAN总线学习笔记-CAN帧结构

数据帧 数据帧&#xff1a;发送设备主动发送数据&#xff08;广播式&#xff09; 标准格式的11ID不够用了&#xff0c;由此产生了扩展格式 SOF&#xff1a;帧起始&#xff0c;表示后面一段波形为传输的数据位 ID&#xff1a;标识符&#xff0c;区分功能&#xff0c;同时决定优…

旭日X3与英伟达Orin NX通过TCP传输图片

观前提醒&#xff1a;本文主要内容为使用Python在局域网内建立TCP连接并传输图片信息&#xff0c;计算机为一块旭日X3和一块英伟达Orin NX。 一、什么是TCP TCP&#xff08;传输控制协议&#xff09;是一种可靠的、面向连接的协议&#xff0c;它确保数据包的顺序传输和完整性…