JAVA小知识28:FIle类文件对象

Java 中的 File 类是 java.io 包中的一个类,用于表示文件和目录路径名的抽象表示。它提供了一些方法来操作文件和目录

一、File的创建

1.1、绝对路径

绝对路径是指从文件系统的根目录开始定位文件或目录的完整路径。它通常以根目录符号开始,在 Windows 系统中是盘符 (如 C:),在 Unix/Linux 系统中是斜杠 (/)。

特点:

  1. 从根目录开始,路径是唯一的。
  2. 无论当前工作目录是什么,都可以使用绝对路径准确定位文件或目录。
    例如:
  • Windows: C:\Users\John\Documents\report.txt
  • Unix/Linux: /home/john/documents/report.txt

1.2、相对路径

相对路径是指相对于当前工作目录定位文件或目录的路径。它不以根目录符号开始,而是相对于当前目录进行路径解析。

特点:

  1. 依赖于当前工作目录,路径的解释可能会因为当前目录的不同而不同。
  2. 相对路径更简短,适用于程序中经常变动的目录结构。
    例如:
  1. 当前目录为 C:\Users\John\Documents,相对路径 report.txt 指向 C:\Users\John\Documents\report.txt
  2. 当前目录为 /home/john/documents,相对路径 …/report.txt 指向 /home/john/report.txt

1.3、File的构造方法

在这里插入图片描述

三种构造方法的使用,虽然有三种构造方法,但是这三种构造方法所构建的对象都是同一个

// 1. 根据字符串表示的路径创造File对象
String path = "C:\\Users\\password123456\\Desktop\\资料\\demo1.txt";
File file = new File(path);
System.out.println(file);//C:\Users\password123456\Desktop\资料
// 2.根据父路径名字符串和子路径名字符串创建文件对象
// 父路径:C:\Users\password123456\Desktop\资料
// 子路径:demo1.txt
String fatherPath = "C:\\Users\\password123456\\Desktop\\资料";
String childPath = "demo1.txt";
File file1 = new File(fatherPath,childPath);
System.out.println(file1);//C:\Users\password123456\Desktop\资料\demo1.txt
// 3. 根据父路径对应文件对象和子路径名字符串创建京件对象斯
File file2 = new File("C:\\Users\\password123456\\Desktop\\资料");
File file3 = new File(file2,childPath);
System.out.println(file3);//C:\Users\password123456\Desktop\资料\demo1.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()返回文件的最后修改时间(时间毫秒值)
String path = "C:\\Users\\password123456\\Desktop\\资料\\demo1.txt";
String path2 = "C:\\Users\\password123456\\Desktop\\资料";
File file = new File(path);
File file2 = new File(path2);
//public boolean isDirectory()	判断此路径名表示的File是否为文件夹
System.out.println(file.isDirectory());// false
System.out.println(file2.isDirectory());// true
// public boolean isFile()	判断此路径名表示的File是否为文件
System.out.println(file.isFile());// true
// public boolean exists()	判断此路径名表示的File是否存在
System.out.println(file.exists());// true
//public long length()	返回文件的大小(字节数量)
System.out.println(file.length());// 0
//public string getAbsolutePath()	返回文件的绝对路径
System.out.println(file.getAbsoluteFile());// C:\Users\password123456\Desktop\资料\demo1.txt
//public string getPath()	返回定义文件时使用的路径
System.out.println(file.getPath());// C:\Users\password123456\Desktop\资料\demo1.txt
//public string getName()	返回文件的名称,带后缀
System.out.println(file.getName());// demo1.txt
//public long lastModified()	返回文件的最后修改时间(时间毫秒值)
System.out.println(file.lastModified());// 1718950374967

三、File的创造删除方法

方法名称说明
public boolean createNewFile()创建一个新的空的文件
public boolean mkdir()创建单级文件夹
public boolean mkdirs()创建多级文件夹
public boolean delete()删除文件、空文件夹

createNewFile:创建一个新的空的文件:

  1. 如果当前路径表示的文件是不存在的,则创建成功,方法返回true。如果当前路径表示的文件是存在的,则创建失败,方法返回false。
  2. 如果父级路径是不存在的,那么方法会有异常I0Exception
  3. createNewFile方法创建的一定是文件,如果路径中不包含后缀名,则创建一个没有后缀的文件
// 1. 根据字符串表示的路径创造File对象
String path = "C:\\Users\\password123456\\Desktop\\资料\\File类\\a.txt";
File file = new File(path);
//public boolean createNewFile()	创建一个新的空的文件
boolean newFile = file.createNewFile();
System.out.println(newFile);
//public boolean mkdir()	创建单级文件夹
File file1 = new File("C:\\Users\\password123456\\Desktop\\资料\\File类\\aaa");
boolean mkdir = file1.mkdir();
System.out.println(mkdir);// true
//public boolean mkdirs()	创建多级文件夹
File file2 = new File("C:\\Users\\password123456\\Desktop\\资料\\File类\\aaa\\bbb\\ccc");
boolean mkdirs = file2.mkdirs();
System.out.println(mkdirs);//true
//public boolean delete()	删除文件、空文件夹
File file3 = new File("C:\\Users\\password123456\\Desktop\\资料\\File类\\aaa\\bbb\\ccc");
boolean delete = file3.delete();
System.out.println(delete);//true

四、获取并且遍历

方法名称说明
public static File[] listRoots()列出可用的文件系统根
public string[] list()获取当前该路径下所有内容
public string[] list(FilenameFilter filter)利用文件名过滤器获取当前该路径下所有内容
public File[] listFiles()获取当前该路径下所有内容
public File[] listFiles(FileFilter filter)利用文件名过滤器获取当前该路径下所有内容
public File[] listFiles(FilenameFilter filter)利用文件名过滤器获取当前该路径下所有内容

== 最为重要的就是:public File[] listFiles() ==

我们来看看演示代码

String path = "C:\\Users\\password123456\\Desktop\\资料\\File类";
File file = new File(path);
File[] files = file.listFiles();
for (File file1 : files) {
    File absoluteFile = file1.getAbsoluteFile();
    System.out.println(absoluteFile);
}

接下来看看文件中以及输出语句
在这里插入图片描述
在这里插入图片描述

  • 当调用者File表示的路径不存在时,返回null
  • 当调用者File表示的路径是文件时,返回null
  • 当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组
  • 当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
  • 当调用者File表示的路径是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回包含隐藏文件

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

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

相关文章

企业微信集成策略:打破壁垒,驱动企业数字化转型

随着全球化和数字化的快速推进,企业如何在激烈的市场竞争中脱颖而出,成为每个企业家和决策者关注的焦点。腾讯推出的企业微信,作为一款集沟通、协作、管理于一体的企业通讯与办公工具,正逐步成为企业数字化转型的得力助手。NetFar…

fastadmin配合定时任务

一个系统单纯到linux本身的定时任务,是很不方便的,需要结合起来使用定时任务 - 便捷的后台定时任务管理 – 基于ThinkPHP和Bootstrap的极速后台开发框架 1.安装插件 2.配置宝塔定时任务 3.自己用工具生成规则即可:Cron - 在线Cron表达式生成器

Unity URP下通过相机让部分Render不受后处理渲染

我们有时候不想某些对象受到后处理影响,找到了这样一个决绝办法,通过增加一个Overlay相机只照射这个模型来实现,下面看看如何实现。 第一步 首先我们拖一个测试场景,有如下一些元素 一个盒子,以后后处理&#xff0c…

Hadoop3:MapReduce中Reduce阶段自定义OutputFormat逻辑

一、情景描述 我们知道,在MapTask阶段开始时,需要InputFormat来读取数据 而在ReduceTask阶段结束时,将处理完成的数据,输出到磁盘,此时就要用到OutputFormat 在之前的程序中,我们都没有设置过这部分配置 …

Linux 运维 | 4.从零开始,文件目录特殊权限管理实践

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] 0x00 前言简述 描述:前一章,学习了Linux系统中的用户与用户组的管理,此章节我们将继续学习Linux系统中比较基础且重要的文件权限设置与属性管理,在L…

大数据学习-Hive

介绍 分布式 SQL 计算 做数据的统计分析,SQL 是最方便的工具 在大数据中,有很多的统计分析场景,那么 SQL 来处理大数据是非常合适且频繁的 以后可能就是 SQL Boy 了,所以学习前需要有 MySQL 的基础 Hive 的功能 是一个分布式…

【MySQL】索引的原理及其使用

文章目录 什么叫索引减少磁盘IO次数缓存池(Buffer Pool)MySQL的页页内目录页目录 正确理解索引结构为什么Innodb的索引是B树结构各种存储引擎支持的索引聚簇索引和非聚簇索引索引类型 关于索引的操作创建主键索引唯一索引的创建普通索引的创建查看索引删除索引 什么…

在React中,如何利用React.memo函数对函数组件进行优化?

React.memo 是 React 的一个高阶组件,用于对函数组件进行性能优化。它通过记忆化(memoization)来避免不必要的重新渲染。当组件的 props 没有变化时,React.memo 可以防止组件重新渲染,从而提高应用的性能。 使用 Reac…

【Redis】分布式锁基本理论与简单实现

目录 分布式锁解释作用特性实现方式MySQL、Redis、Zookeeper三种方式对比 原理 reids分布式锁原理目的容错redis简单分布式锁实现锁接口实现类下单场景的实现容错场景1解决思路优化代码 容错场景2Lua脚本Redis利用Lua脚本解决多条命令原子性问题 释放锁的业务流程Lua脚本来表示…

开放式耳机怎么选?五款劲爆机型强势PK!2024推荐版!

身为健身达人,我对耳机的要求可不低。开放式耳机让我在健身时既能享受音乐,又能清晰听到教练的指导。它佩戴舒适,不易掉落,而且音质出色,让我沉浸于运动的节奏中。市面上开放式耳机种类繁多,我为大家挑选了…

SD-WAN为什么适合小企业

SD-WAN(软件定义广域网)是一种革新性的网络技术,通过软件智能管理,实现灵活和高效的网络连接。在数字化转型浪潮中,企业对网络稳定性和性能的要求不断提升,SD-WAN因此受到了广泛关注。对于资源有限的小型企…

qml/c++:基础界面的串口设置逻辑

文章目录 文章介绍效果图本机串口打开从虚拟端串口传数据到本机串口 代码添加serialporthandler类serialporthandler.hserialporthandler.cpp获取串口列表打开串口关闭串口清空按钮接收数据按钮逻辑:打开和关闭串口、弹出信息框、按钮文字改变 main.cpp 文章介绍 上…

怎么采集阿里巴巴1688的商品或商家数据?

怎么使用简数采集器批量采集阿里巴巴1688的商品或商家相关信息呢? 简数采集器暂时不支持采集阿里巴巴1688的相关数据,谢谢。 简数采集器采集网络网页数据非常简单高效:输入要采集的网址,简数智能算法会自动提取出网页上的关键信…

【自动驾驶】ROS小车系统

文章目录 小车组成轮式运动底盘的组成轮式运动底盘的分类轮式机器人的控制方式感知传感器ROS决策主控ROS介绍ROS的坐标系ROS的单位机器人电气连接变压模块运动底盘的电气连接ROS主控与传感器的电气连接ROS主控和STM32控制器两种控制器的功能运动底盘基本组成电池电机控制器与驱…

90V降5V1.5A恒压WT6039

90V降5V1.5A恒压WT6039 WT6039是一款专为宽电压输入范围设计的降压DC-DC转换器芯片,覆盖12V至90V电压。该芯片集成了包括使能控制开关、参考电源、误差放大器、过热保护、限流保护及短路保护等关键功能,确保在各种操作条件下的系统安全与稳定性。WT6039…

Kotlin 中的可见修饰符

Java 和 Kotlin 中的可见修饰符: Java:public、private、protected 和 default(什么都不写);Kotlin:public、private、protected 和 internal; 比较: 对于 public 修饰符:在 Java 和 Kotlin 中…

NSSCTF-Web题目13

目录 [SWPUCTF 2022 新生赛]js_sign 1、题目 2、知识点 3、思路 [MoeCTF 2021]Do you know HTTP 1、题目 2、知识点 3、思路 [SWPUCTF 2022 新生赛]js_sign 1、题目 2、知识点 base64编码、敲击码(tap code) 3、思路 页面没有什么,…

CPRI协议理解——控制字内容

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 CPRI协议理解——控制字内容 前言同步标识L1 Inband ProtocolZ130.0Z.194 C&M 通道慢速C&M 通道快速C&M 通道Vendor Specific DataControl AxC Data 后记 前言 …

IIS代理配置-反向代理

前后端分离项目,前端在开发中使用proxy代理解决跨域问题,打包之后无效。 未配置前无法访问 部署环境为windows IIS,要在iis设置反向代理 安装代理模块 需要在iis中实现代理,需要安装Application Request Routing Cache和URL重…

【论文精读】ViM: Out-Of-Distribution with Virtual-logit Matching 使用虚拟分对数匹配的分布外检测

文章目录 一、文章概览(一)问题来源(二)文章的主要工作(三)相关研究 二、动机:Logits 中缺失的信息(一)logits(三)基于零空间的 OOD 评分&#xf…