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.mzph.cn/web/31567.shtml

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

相关文章

【Mac】DMG Canvas for mac(DMG镜像制作工具)软件介绍

软件介绍 DMG Canvas 是一款专门用于创建 macOS 磁盘映像文件(DMG)的软件。它的主要功能是让用户可以轻松地设计、定制和生成 macOS 上的安装器和磁盘映像文件,以下是它的一些主要特点和功能。 主要特点和功能 1. 用户界面设计 DMG Canva…

Rocky Linux 更换CN镜像地址

官方镜像列表&#xff0c;下拉查找 官方镜像列表&#xff1a;https://mirrors.rockylinux.org/mirrormanager/mirrorsCN 开头的站点。 一键更改镜像地址脚本 以下是更改从默认更改到阿里云地址 cat <<EOF>>/RackyLinux_Update_repo.sh #!/bin/bash # -*- codin…

自研地面站!自主开源无人飞行系统 Prometheus V2 版重大升级详解

自主开源无人飞行系统 Prometheus V2 相对于 Prometheus V1 在多方面做了重大的升级&#xff0c;今天我们将聊聊 Prometheus V2 的地面站升级。 地面站的重大提升 熟悉 Prometheus 的小伙伴们可能知道&#xff0c;V1 版本是没有专门的地面站的。而在 Prometheus V2 中&#x…

java开发技巧01

1.参数传递不要太深&#xff0c;影响阅读&#xff0c;可以抽取单独的方法。 void method001(String param){ for(){ ...... } if(){ ...... } for(){ ...... } if(){ ...... } //在此处才用到 param ......; if(param){ param ...... } } 2.不要在循环里面频繁请求数据库&…

vue3 配置全局@符号

1.下载依赖包 npm install types/node --save 2.修改vite.config.ts配置文件 import path from "path"; export default defineConfig({plugins: [vue()],resolve: {alias: {"": path.resolve(__dirname, "./src"),},}, });3.修改tsconfig.jso…

VERYCLOUD睿鸿股份亮相亚马逊云科技中国峰会2024

5月30日&#xff0c;为期两天的亚马逊云科技中国峰会在上海世博中心圆满落幕。 多位大咖现场分享&#xff0c;生成式AI时代的数据战略&#xff0c;企业级AI应用&#xff0c;最新技术、产品重磅发布&#xff0c;创新行业解决方案 …… 作为亚马逊云科技的生态合作伙伴&#x…

C语言循环中获取之前变量的值

获取上个数组变量的值 #include <stdio.h> #include <string.h>enum { GG, DD }; int main() {int bi[] {0, 0};int bi_s1[] {0, 0};for (int i 0; i < 5; i) {memcpy(bi_s1, bi, sizeof(bi));bi[GG] i * 3;bi[DD] i * 2;printf("bigg %d, bigg_s1 …

AI 是否会通过制造大量垃圾信息来污染互联网

AI 生成内容(AIGC,AI-Generated Content)可能导致大量垃圾信息在互联网上传播,这种现象被称为**“信息污染”**。以下是有关这个问题的详细讨论,包括可能的影响、原因、现状以及应对措施。 1. 影响和潜在问题 1.1 信息污染 低质量内容泛滥:AI工具能够快速生成大量低质量…

好大夫在线医生数据医生姓名科室荣誉等202406

好大夫在线医生数据医生姓名科室荣誉等 2024年6月数据&#xff0c;总共934027条数据&#xff0c;可导出为excel,csv等 好大夫在线2024-06月数据 包含简介信息&#xff01; 可见样例数据 样例数据_医生2.xlsx https://www.alipan.com/s/DBEW9MgHEPP 点击链接保存&#xff0…

易宝OA downloadfile 任意文件读取

【产品&&漏洞简述】 易宝OA系统是一种专门为企业和机构的日常办公工作提供服务的综合性软件平台&#xff0c;具有信息管理、 流程管理 、知识管理&#xff08;档案和业务管理&#xff09;、协同办公等多种功能 易宝OA downloadfile 文件读取&#xff0c;攻击者可通过…

【单片机毕业设计选题24019】-基于STM32的安防监测灭火系统

系统功能: 1. 水泵喷水灭火功能&#xff1a;当火焰传感器监测到火焰时&#xff0c;蜂鸣器报警&#xff0c;水泵工作实现灭火。 2. 风扇功能&#xff1a;当烟雾传感器检测到CO或温度传感器检测到温度超过阈值时&#xff0c;蜂鸣器报警&#xff0c; 启动风扇进行驱散烟雾或降温…

毫秒级响应!清科优能应用 TDengine 建设虚拟电厂运营管理平台

小T导读&#xff1a;在清科优能的虚拟电厂运营管理平台建设中&#xff0c;项目初期预计涉及约一万台设备、总数据采集量达数十万&#xff0c;在数据库选择上&#xff0c;其希望能支持至少两千台设备的并发数据处理。本文介绍了清科优能的数据库选型经验以及最终应用效果&#x…

简易人工智能入门

一、监督or非监督 监督学习&#xff08;Supervised Learning&#xff09;&#xff1a;训练集有标记信息&#xff08;Y&#xff09;&#xff0c;学习方式有分类和回归 无监督学习&#xff08;Unsupervised Learning&#xff09;&#xff1a;训练集没有标记信息&#xff0c;学习…

后端实现预览pdf,mp4,图片

PDF预览 /*** pdf预览* param response*/RequestMapping(value "/preview")public void showPdf(HttpServletResponse response) {try {//String filePath this.getClass().getClassLoader().getResource("../../static/pdf/readme.pdf").getPath();Stri…

解决virtualbox虚拟机与主机之间复制粘贴

1、在VirtualBox管理器中设置共享粘贴板和拖放方向为双向 2、在存储中设置使用主机输入输出&#xff08;I/O&#xff09;缓存。 3、在存储→控制器&#xff1a;SATA→***.vdi下勾选固态驱动器 4、在虚拟机→设备→安装增强功能 如果上述操作重启虚拟机后&#xff0c;还不行&am…

【考研408计算机组成原理】数值表示和运算之快速数值转换

苏泽 “弃工从研”的路上很孤独&#xff0c;于是我记下了些许笔记相伴&#xff0c;希望能够帮助到大家 另外&#xff0c;利用了工作之余的一点点时间&#xff0c;整理了一套考研408的知识图谱&#xff0c; 我根据这一套知识图谱打造了这样一个408知识图谱问答系统 里面的每一…

【单片机毕业设计选题24018】-基于STM32和阿里云的农业大棚系统

系统功能: 系统分为手动和自动模式&#xff0c;上电默认为自动模式&#xff0c;自动模式下系统根据采集到的传感器值 自动控制&#xff0c;温度过低后自动开启加热&#xff0c;湿度过高后自动开启通风&#xff0c;光照过低后自动开启补 光&#xff0c;水位过低后自动开启水泵…

Kubernetes中的Java微服务部署策略

在现代软件开发中&#xff0c;微服务架构因其灵活性和可扩展性而变得越来越流行。Kubernetes&#xff08;通常简称为K8s&#xff09;是一个开源平台&#xff0c;用于自动化部署、扩展和管理容器化应用程序&#xff0c;非常适合部署微服务。本文将详细介绍如何在Kubernetes中部署…

C++初学者指南第一步---11.字符串(基础)

C初学者指南第一步—11.字符串&#xff08;基础&#xff09; 文章目录 C初学者指南第一步---11.字符串&#xff08;基础&#xff09;1. std::string2. char std::string的元素类型3. std::string字符串操作4. 字面量4.1 C风格字符串字面量4.2 "std::string 字面量"s…

【论文复现|智能算法改进】改进麻雀算法的无人机三维路径规划

目录 1.UAV路径规划数学模型2.改进点3.结果展示4.参考文献5.代码获取 1.UAV路径规划数学模型 【智能算法应用】蜣螂优化算法DBO求解UAV路径规划 2.改进点 Logistics混沌映射 X n 1 μ X n ( 1 − X n ) , X n ∈ ( 0 , 1 ) (1) X_{_{n1}} \mu X_{_n}( 1 - X_{_n} ) ,\qua…