【从零开始学习JAVA | 第三十三篇】File类

news2024/11/16 13:50:41

目录

前言:

File类:

构造方法:

常见成员方法:

总结:


前言:

        本文我们将为大家介绍JAVA中一个比较使用的类:File类,他为我们提供了存储数据的功能,使得程序的数据不至于在运行结束之后就丢失,是一个很好的类。

File类:

        File类是Java标准库中用于操作文件和目录的一个核心类。它提供了一系列方法,可以创建、删除、重命名、复制、查询和操作文件和目录的属性等。

        File类创建的对象就表示一个路径,可以是文件的路径,也可以是文件夹的路径。

在文件系统中,路径用于指定文件或目录的位置。在Java中,有两种常见的路径表示方式:绝对路径和相对路径。

  1. 绝对路径(Absolute Path):
    绝对路径是一个完整的路径,它从文件系统的根目录开始指定文件或目录的位置。在不同操作系统中,根目录的表示方式可能有所不同。在Windows系统中,绝对路径通常以盘符(如C:\、D:\)开始,如"C:\Users\Username\Documents\example.txt"。在Unix/Linux系统中,绝对路径从根目录(/)开始,如"/home/username/documents/example.txt"。

    使用绝对路径可以精确地指定文件或目录的位置,无论当前工作路径在哪里都能够正确地定位。

  2. 相对路径(Relative Path):
    相对路径是相对于当前工作路径或另一个已知路径的路径。它指定文件或目录相对于当前位置的位置关系。相对路径不以根目录为起始,而是从当前目录开始描述路径。相对路径通常更简短,便于在程序中灵活使用。

    相对路径可以分为两种:

    • 相对于当前工作路径:这是最常见的情况,相对路径从当前工作路径开始描述文件或目录的位置关系。例如,如果当前工作路径为"/home/username",而文件"example.txt"位于该目录下,相对路径可以简单地表示为"example.txt"。
    • 相对于另一个已知路径:相对路径也可以相对于另一个已知路径进行描述。例如,如果当前工作路径为"/home/username",而文件"example.txt"位于该目录下的子目录"documents"中,相对路径可以表示为"documents/example.txt"。

    相对路径的优势在于能够根据当前程序的运行环境轻松地适应不同的文件结构,例如在不同操作系统上运行同一程序时。但是需要注意,相对路径必须基于当前工作路径或已知路径,否则可能会导致文件或目录无法找到。

构造方法:

File类提供了多个构造方法,用于创建File对象以表示文件或目录的路径。以下是常见的几种构造方法:

  1. 构造方法一:File(String pathname)

    • 通过给定字符串表示的路径创建File对象。
    • 参数pathname可以是文件或目录的路径。
    • 例如:File file = new File("C:\\Users\\Username\\Documents\\example.txt");
  2. 构造方法二:File(String parent, String child)

    • 通过给定父路径和子路径创建File对象。
    • 参数parent表示父路径,child表示子路径。
    • 例如:File file = new File("C:\\Users\\Username\\Documents", "example.txt");
  3. 构造方法三:File(File parent, String child)

    • 通过给定父File对象和子路径创建File对象。
    • 参数parent表示父File对象,child表示子路径。
    • 例如:File parentDir = new File("C:\\Users\\Username\\Documents"); File file = new File(parentDir, "example.txt");

在文件系统中,父路径和子路径是用于描述文件或目录之间层次关系的概念。

1. 父路径(Parent Path):
   父路径是相对于当前路径或文件的上一级目录路径。简单来说,父路径是文件或目录所在位置的上层目录的路径。

2. 子路径(Child Path):
   子路径是相对于当前路径或文件的下一级目录路径。它表示文件或目录位于当前路径的子目录中。

常见成员方法:

File类提供了一系列常见的成员方法,用于执行各种文件和目录的操作。以下是一些常见的File类成员方法:

  1. 文件和目录的基本操作:

    • createNewFile():创建文件。
    • mkdir():创建目录。
    • mkdirs():创建多级目录。
    • delete():删除文件或目录。

delete删除文件是不走回收站的,直接进行删除,无法从回收站复原,因此在删除的时候要格外注意。而如果删除文件夹的话要分两种情况:

1.如果删除空文件夹,就直接删除

2.如果删除的是有内容的文件夹,就会删除失败

  1. 文件和目录的属性查询:

    • exists():检查文件或目录是否存在。
    • isFile():检查是否为文件。
    • isDirectory():检查是否为目录。
    • getName():获取文件或目录的名称。
    • getPath():获取文件或目录的路径。
    • getAbsolutePath():获取文件或目录的绝对路径。
    • length():获取文件的大小(字节数)。
    • lastModified():获取文件或目录的最后修改时间。

windows中路径是唯一的,如果当前要创建的新的文件与已有文件夹路径重叠,那么程序就会抛出异常。

  1. 文件和目录的遍历:

    • list():返回目录下的所有文件和目录名称数组。
    • listFiles():返回目录下的所有文件和目录File对象数组。
  2. 文件操作:

    • canRead():检查文件是否可读。
    • canWrite():检查文件是否可写。
    • setReadable(boolean readable):设置文件是否可读。
    • setWritable(boolean writable):设置文件是否可写。
  3. 文件和目录的重命名和移动:

    • renameTo(File dest):将文件或目录重命名为指定的名称(可以是新的路径)。
  4. 其他功能:

    • getParent():获取文件或目录的父级目录。
    • isHidden():检查文件或目录是否是隐藏文件。
    • getTotalSpace():获取文件所在驱动器的总空间。
    • getFreeSpace():获取文件所在驱动器的可用空间。

总结:

        本文我们为大家介绍了File类以及其常见的成员方法,他可以直接对系统文件进行操作,用来存储我们运行时候的数据,是一个很常见的内部类。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

 

 

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

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

相关文章

Python(一)

要做到坚韧不拔,最要紧的是坚持到底。——陀思妥耶夫斯基 2023 6 14~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --根据你自己的操作系统下载对应的。 -- pyhton 文档 --交互方式 使用的工具 --如何启动工具 -- 交互式方式一般在数据分析中…

认识什么是架构

目录 ​编辑 一、架构是什么 1.1 系统与子系统 1.1.1 系统 1.1.1.1 关联 1.1.1.2 规则 1.1.1.3 能力 1.1.2 子系统 1.2 模块与组件 1.2.1 模块 1.2.2 组件 1.3 框架与架构 1.3.1 框架 1.3.2 架构 1.3.2.1 架构定义 1.3.2.2 架构组成 1.3.2.2.1 要素 1.3.2.2.2 结构 1.3.2…

YAML+PyYAML笔记 7 | PyYAML源码之yaml.compose_all(),yaml.load(),yaml.load_all()

7 | PyYAML源码之yaml.compose_all,yaml.load,yaml.load_all 1 yaml.compose_all()2 yaml.load()3 yaml.load_all() 1 yaml.compose_all() 源码: 作用:分析流中的所有YAML文档,并产生相应的表示树。解析: # -*- codi…

IDEA配置远程docker解释器及无编码提示/关联不到python依赖问题

文章目录 1. 修改docker默认配置以支持远程连接2. 配置docker远程解释器3 .IDE配置project SDK4. 本地代码与Linux目录映射5.运行配置 1. 修改docker默认配置以支持远程连接 vim /lib/systemd/system/docker.service,修改docker启动参数 #ExecStart/usr/bin/dockerd -H fd://…

后台管理系统中重定向业务功能的实现

实现 退出登录组件中获取到当前路由路径并且传递query参数给登录页面 // 组件内 const logout()>{// 获取当前路由路径const redirectroute.fullPathuseStore.logout(redirect) }// pinia/store仓库 async logout(redirect:string){... // 清空仓库业务router.push({name:…

机器人状态估计:robot_localization 功能包基本参数详解

机器人状态估计:robot_localization 功能包基本参数详解 前言功能包简介相关参数基本参数 前言 移动机器人的状态估计需要用到很多传感器,因为对单一的传感器来讲,都存在各自的优缺点,所以需要一种多传感器融合技术,将…

【业务功能篇56】SpringBoot 日志SLF4J Logback

3.5.1 日志框架分类与选择 3.5.1.1 日志框架的分类 日志门面 (日志抽象)日志实现JCL(Jakarta Commons Logging) SLF4J(Simple Logging Facade for Java)Jul(Java Util Logging) , Log4j , Log4j2 , Logback 记录型日志框架 Jul (Java Util Logging):JDK中的日志…

山西电力市场日前价格预测【2023-07-29】

日前价格预测 预测明日(2023-07-29)山西电力市场全天平均日前电价为337.82元/MWh。其中,最高日前电价为355.66元/MWh,预计出现在09: 15。最低日前电价为314.90元/MWh,预计出现在24: 00。 价差方向预测 1:实…

MySQL基础语法(DDL、DQL、DML、DCL)

目录 SQL通用语法以及分类 SQL通用语法 SQL语句的分类 数据库/表/列的命名规则 DDL语句 DDL设计的数据类型 数据库操作 表操作(必须先进入到数据库) DQL语句 DQL的执行顺序 基本查询 SELECT 条件查询 WHERE 分组查询 GROUP BY 排序查询 OR…

formatter的用法,深拷贝, Object.assign 方法实战。

1. :formatter的用法 :formatter 接受一个函数作为参数&#xff0c;这个函数有三个参数&#xff1a;row&#xff0c;column 和 cellValue。row 是当前行的数据&#xff0c;column 是当前列的数据&#xff0c;cellValue 是当前单元格的值。 <el-table-column prop"SYS…

Spring Boot——Spring Boot启动原理

系列文章目录 Spring Boot启动原理 系列文章目录一、Spring Boot启动的宏观流程图二、Spring Boot启动流程2.1 初始化new SpringApplication2.1.1Spring Boot入口2.1.2初始化SpringApplication2.1.2.1判断当前应用程序类型2.1.2.2设置应用程序的所有初始化器(initializers)2.1.…

内置 NMOS 单路 PWM 控制的高调光比 LED 降压恒流控制器

概述 OC5401M 是一款内置调光 NMOS 的单路 PWM 控制的高调光比降压恒流驱动控制器&#xff0c;PWM 调光比最高可达 10000&#xff1a;1。 OC5401M 支持 16-60V 输入电压范围。 OC5401M 采用电流滞环控制方式&#xff0c;无需环路补偿。 OC5401M 可通过外接电阻设置 LED输出电流…

Python(四十九)获取列表指定元素的索引

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

Improving Cross-Modal Retrieval with Set of Diverse Embeddings

框架图&#xff1a; Using Triplet Loss: Smooth-Chamfer similarity Using Log-Sum-Exp,

matplotlib从起点出发(5)_Tutorial_5_styleSheets

1 使用样式表和rcParams自定义matplotlib 以下是自定义matplotlib的属性和默认样式的提示。 有三种方式来自定义matplotlib: 在运行时设置rcParams&#xff1b;使用样式表&#xff1b;改写matplotlibrc文件。 在运行时设置rcParams优先于样式表&#xff0c;样式表优先于matp…

[JavaWeb]SQL介绍-DDL语句

SQL介绍-DDL语句 一.SQL简介1.简介2.SQL通用语法3.SQL语言的分类 二.DDL-操作数据库与表1.DDL操作数据库2.DDL操作表①.查询表(Retrieve)②.创建表(Create)③.修改表(Update)④.删除表(Delete) 一.SQL简介 1.简介 SQL: Structured Query Language–结构化查询语言用来操作关系…

如图,△ABC中,AD是角平分线,E、F分别为AC、AB上的点,且∠AED+∠AFD=180°.试问:DE与DF有何关系,并说明理由.

Question&#xff1a; 如图&#xff0c;△ABC中&#xff0c;AD是角平分线&#xff0c;E、F分别为AC、AB上的点&#xff0c;且∠AED∠AFD180&#xff0e;试问&#xff1a;DE与DF有何关系&#xff0c;并说明理由&#xff0e; Answer&#xff1a; 分析&#xff1a;过D作DM⊥AB于…

postgresql搭建主备

文章目录 1. 要求2. 主库设置3. 主库创建复制槽、复制用户4. 导出主库5. 备库设置6. 备库创建standby.signal7. 启动备库8. 备库创建复制槽、查询数据9. 查看日志10. 测试切换11. 同步测试12. 监控主备状态 1. 要求 1.使用流复制&#xff0c;配置复制槽 2.只有一个备库时不配置…

技术分享 | 接口自动化测试中,文件上传该如何测试?

在服务端自动化测试过程中&#xff0c;文件上传类型的接口对应的请求头中的 content-type 为 multipart/form-data; boundary…&#xff0c;碰到这种类型的接口&#xff0c;使用 Java 的 REST Assured 或者 Python 的 Requests 均可解决。 实战练习 Python 版本 在 Python 版…

Mysql原理篇--第三章 事务与锁

文章目录 前言一、mysql 的事务1 .1 mysql 事务:1 .2 mysql 为什么要支持事务: 二、mysql的事务实现&#xff1a;2.1 mysql的事务隔离级别&#xff1a;2.2 mysql 脏读&#xff0c;不可重复读&#xff0c;幻读&#xff1a;2.2.1 脏读&#xff1a;2.2.2 不可重复读&#xff1a;2.…