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();//递归出来,删除最外层的文件夹}

最后

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kotlin 调用java的get方法Use of getter method instead of property access syntax

调用警告 Person.class public class Person {private String name;Person(String name) {this.name name.trim();}public String getName() {return name;}public void setName(String name) {this.name name;}public String getFullName() {return name " Wang&quo…

【MySQL】数据库入门基础

文章目录 一、数据库的概念1. 什么是数据库2. 主流数据库3. mysql和mysqld的区别 二、MySQL基本使用1. 安装MySQL服务器在 CentOS 上安装 MySQL 服务器在 Ubuntu 上安装 MySQL 服务器验证安装 2. 服务器管理启动服务器查看服务器连接服务器停止服务器重启服务器 3. 服务器&…

麒麟操作系统rpm ivh安装rpm包卡死问题分析

夜间变更开发反应,rpm -ivh 安装包命令夯死,无执行结果,也无报错 排查 : 1、top 查看无进程占用较高进程存在,整体运行平稳 2、df -h 查看磁盘并未占满 3、其他服务器复现该命令正常执行 4、ps -ef|grep rpm 查看安装命令仍在运行中 5、查看log日志,均正常并无不良日志…

UE Editor API 整理

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

了解Kubernetes-RKE2的PKI以及证书存放位置

一、什么是PKI? 简称:证书基础设施。 可以方便理解为当你的集群有Server,Client架构,那么为了安全加密之间的通信,则需要使用证书进行交互,那么利用PKI架构可以安全加密组件之间的通信。 二、Kubernetes的PKI架构什…

HLA高层体系结构1.0.0版本

名:高层体系结构(High Level Architecture,HLA) 高层体系结构(High Level Architecture,HLA)是从体系结构上建立这样一个框架,它能尽量涵盖M&S领域中所涉及的各种不同类型的仿真…

代码随想录算法训练营第十四天| 104.二叉树的最大深度 、 111.二叉树的最小深度、 222.完全二叉树的节点个数

104.二叉树的最大深度 题目链接:二叉树的最大深度 文档讲解:代码随想录 状态:so easy 思路:左子树和右子树中取最大深度,依次往下递归 递归解法: public int maxDepth(TreeNode root) {if (root null) {r…

【高校科研前沿】新疆生地所陈亚宁研究员团队在GeoSus发文:在1.5°C和2°C全球升温情景下,中亚地区暴露于极端降水的人口增加

目录 文章简介 1.研究内容 2.相关图件 3.文章引用 文章简介 论文名称:Increased population exposures to extreme precipitation in Central Asia under 1.5 ◦C and 2 ◦C global warming scenarios(在1.5C和2C全球变暖情景下,中亚地区…

伽马校正技术在AI绘画中的作用

随着人工智能技术的飞速发展,AI绘画已经成为了艺术创作领域的一股新兴力量。在这个数字化时代,计算机图形学和机器学习的结合为我们带来了前所未有的创作工具。然而,为了实现更加真实和自然的色彩表现,伽马校正技术在其中扮演着至…

DP读书:如何使用badge?(开源项目下的标咋用)

最近在冲论坛,很少更一些内容了。但遇到了一个真的有趣的: 开源项目下,蓝蓝绿绿的标是怎么用的呢? 这是我的主页Readme,在看一些NXP的主仓时,突然发现没有这个玩,就自己整了个 再比如我的CSDN专…

Vivado 设置关联使用第三方仿真软件 Modelsim

目录 1.前言2.Vivado 设置关联使用第三方仿真软件 Modelsim 微信公众号获取更多FPGA相关源码: 1.前言 Vivado 软件自带有仿真功能,该功能使用还是比较方便的,初学者可以直接使用自带的仿真功能。 Modelsim仿真工具是Model公司开发的。它支持Verilog、VHDL以及他…

springboot+vue+mybatis房屋租贷系统+PPT+论文+讲解+售后

本论文系统地描绘了整个网上房屋租赁系统的设计与实现,主要实现的功能有以下几点:管理员;首页、个人中心、房屋类型管理、房屋租赁管理、会员管理、订单信息管理、合同信息管理、退房评价管理、管理员管理,系统管理,前…

分布式ID生成方式

1.UUID uuid方式存在问题:占用字节数比较大;ID比较随机,作为MySQL主键写入库时,为了保证顺序性将导致BTree节点分裂比较频繁,影响IO性能。 2.数据库方式 步长step 3,即为机器的数量。 第一台机器&#x…

2024 Q1企业级SSD市场暴涨,国产努力追赶!

在2024年第一季度,由于对高容量存储需求的激增,企业级固态硬盘(SSD)市场的收入实现了显著增长,达到了37.58亿美元,与上一季度相比增长了62.9%。这一增长主要得益于供应商减产导致的高容量订单需求未得到满足…

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

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

LeetCode 算法:合并区间c++

原题链接🔗:合并区间 难度:中等⭐️⭐️ 题目 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰…

Nginx编译安装+nginx模块

一、I/O模型 处理高并发的时候用 1.1I/O模型简介 同步/异步(消息反馈机制):关注的是消息通信机制,即调用者在等待一件事情的处理结果时,被调用者是否提供完成状态的通知。 同步:synchronous,…

java第二十课 —— 面向对象习题

类与对象练习题 编写类 A01,定义方法 max,实现求某个 double 数组的最大值,并返回。 public class Chapter7{public static void main(String[] args){A01 m new A01();double[] doubleArray null;Double res m.max(doubleArray);if(res !…

Mysql8安装教程与配置(超详细图文)

MySQL 8.0 是 MySQL 数据库的一个重大更新版本,它引入了许多新特性和改进,旨在提高性能、安全性和易用性。 1.下载MySQL 安装包 注:本文使用的是压缩版进行安装。 (1)从网盘下载安装文件 点击此处直接下载 &#…

JavaWeb3 Ajax+Axios+Element+Nginx部署

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