当前位置: 首页 > news >正文

Java 中的File类

路径分为绝对路径和相对路径。

相对路径肯定是相对谁来说的,一般是一个文件相对于另外一个文件而言的路径。

下面是一个例子,比如index.htm如何找到photo.jpg呢?

c:/website/web/index.htm
c:/website/img/photo.jpg

所以在index.htm中使用绝对路径的话就是../img/photo.jpg。

./表示当前文件所在的目录。也可以省略不写。

../表示当前文件所在目录的父目录,就是上一级目录,在c:/website/web/index.htm中就是c:/website,再和相对路径进行拼接就是绝对路径了。

在下面这个代码中aaa其实是./aaa,也就是File1所在的目录按说应该是D:\JavaWorkspace\File\src\com\liu,但是在IDEA中却不是这样,是相对于模块来说的,即./所表示的是D:\JavaWorkspace\File。

public class File1 {public static void main(String[] args) throws IOException {File file = new File("aaa");file.mkdirs();
}

IDEA目录结构(从高到低):Project(项目)→Module(模块)→Package(包)→Java文件
IDEA默认当前路径为Project的路径。

IDEA中的项目和模块的可以参考下面这张图:

关于IDEA中写相对路径时,报错(系统找不到指定的路径)_idea中相对路径找不到文件-CSDN博客

将字符串转换为其他类的对象,比如File类,还有常用的时间类。

如何转换,有3个构造方法。

3个构造方法的参数分别是(路径)、(父级路径,子级路径)、(父级路径的File对象,子级路径)。

细节:在创建的时候是不关心路径存不存在的。

以及常用方法:

(1)获取与File对象有关的有一些信息。

所表示的路径是否存在?exist。所表示的路径是文件夹还是文件?如果所表示的路径根本不存在,则直接返回false。本来想查看源码验证一下,但是看不懂,算了。

length():文件的字节大小,不能获取文件夹的大小。

getAbsolutePath:获取绝对路径。

getPath:返回定义时的路径。

getName:要时刻注意当前File对象所表示的路径是文件还是文件夹。如果是文件夹则返回文件夹的名字,如果是文件,则返回文件名+后缀名,如a.txt。

(2)对文件或文件夹进行操作:增删查

关于createNewFile()方法:它表示创建一个空的文件,但是却没有参数,那文件的名字如何确定呢?是默认提供的吗?好像也不是。

具体步骤应该是这样的,即当前File对象所表示的路径是否是文件?

在此方法中一般都会把文件夹看作文件,比如\bbb,会看作一个没有后缀的bbb文件,而不是文件夹,谁说文件一定要有后缀名呢。所以createNewFile()方法只能创建一个文件,不能创建文件夹。

当前File对象所表示的路径是否存在?如果不存在就创建一个,存在则不创建并返回false。

如果当前路径的父级路径并不存在,运行时会报IOException异常。

mkdir():创建文件夹。

有一个问题:Windows操作系统中,路径是唯一的。比如一个文件夹下有一个文件为bbb,此时想创建一个bbb的文件夹是不会成功的,因为它们两个的路径都是\bbb,这在Windows中是不被允许的。因此这个问题也就延伸到了Java中。

而且mkdir()这个方法只能创建单级文件夹,不能创建多级文件夹,比如想在已有的aaa文件夹下创建还没存在的ccc\ddd就是错的。

但是Java中肯定也提供了相应的方法,比如mkdirs(),就可以创建多级文件夹。但是mkdirs()也是可以创建单级文件夹的,那mkdir()这个方法岂不是没有存在的必要了,答案是的,那为什么还有学呢?因为mkdirs()这个方法的底层其实用到了mkdir()。

还有一个删除的方法delete,首先分删除的是文件还是文件夹,如果是文件,不管空不空,直接删,如果是文件夹则需要考虑文件夹下是否有内容,是空文件夹则删除成功,有内容的文件夹此方法删不了。

并且此方法删除的东西是不经过电脑的回收站的。

遍历文件夹listFiles(),返回结果是一个数组,数组中的内容是路径。

Array.toString()方法,将数组以字符串的形式进行输出。这个方法的底层跟之前写的一模一样。

相关文章:

Java 中的File类

路径分为绝对路径和相对路径。 相对路径肯定是相对谁来说的,一般是一个文件相对于另外一个文件而言的路径。 下面是一个例子,比如index.htm如何找到photo.jpg呢? c:/website/web/index.htmc:/website/img/photo.jpg 所以在index.htm中使用…...

java将map转json字符串或者再将json字符串转回map,java将对象转json字符串或者互想转换,对象集合和json字符串互转

1.导入hutool工具依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency>2.直接复制一下代码运行 import cn.hutool.json.JSONUtil;import java.util.Ar…...

数据库管理-第225期 Oracle DB 23.5新特性一览(20240730)

数据库管理225期 2024-07-30 数据库管理-第225期 Oracle DB 23.5新特性一览&#xff08;20240730&#xff09;1 二进制向量维度格式2 RAC上的复制HNSW向量索引3 JSON集合4 JSON_ID SQL函数5 优化的通过网络对NVMe设备的Oracle的原生访问6 DBCA支持PMEM存储7 DBCA支持标准版高可…...

提高生产效率:最佳7大Bug记录工具

本文将分享2024年值得关注的7款Bug记录工具&#xff1a;PingCode、Worktile、禅道、Tapd、CODING、JIRA、Bugzilla。 Bug的管理和跟踪是一个不断挑战的任务&#xff0c;而一个高效的Bug记录工具不仅可以提高团队的生产效率&#xff0c;还能显著降低项目延误的风险。选择合适的工…...

DDOS攻击学习 - kali初学

文章目录 本地ssh配置nmap(网络连接的工具)nmap -sP IP地址nmap -p 1-65535 -A IP地址主机发现Ping扫描端口扫描时序扫描常用扫描方式 指纹识别与探测全端口版本探测防火墙/IDS逃逸报文分段 信息收集IP信息收集WHOIS查询 数据库渗透测试MySQL列举数据库列举MySQL变量 发起请求目…...

【C++】类和对象——流插入和流提取运算符重载

目录 前言ostream和istream自定义类型的流插入重载自定义类型的流提取重载解决私有问题日期类总接口 前言 我们在上一节实现日期类时&#xff0c;在输入和输出打印时&#xff0c;经常会调用两个函数&#xff1a; void Insert()//输入函数{cin >> _year;cin >> _mo…...

Vmware ubuntu20.04 虚拟文件夹

目录 1.vmware 设置 2.ubuntu设置 1.vmware 设置 设置完成后我们开机 2.ubuntu设置 我们打开终端 输入命令 vmware-hgfsclient可以看到你当前的共享文件 然后我们输入以下命令&#xff0c;用于将共享文件夹挂载到虚拟机中 sudo vmhgfs-fuse .host:/ /mnt -o nonempty -o …...

人工智能学习笔记 - 初级篇Ⅱ - 图形可视化 - 第11节: 绘制带填充区域的图表

微信公众号&#xff1a;御风研墨 关注可了解更多。问题或建议&#xff0c;请公众号留言 文章目录 绘制带填充区域的图表应用背景准备工作操作步骤工作原理补充说明最后 绘制带填充区域的图表 应用背景 在数据可视化中&#xff0c;带填充区域的图表可以有效地表示数据范围、趋…...

使用STM32实现一个线性代数计算器

文章目录 背景挑战与困难如何整合编译&#xff1f;error: non-ASM statement in naked function is not supportederror: #pragma import is an ARM Compiler 5 extension, and is not supported by ARM Compiler 6error: redefinition of __FILE 改造demo中的cout改造delete运…...

我在高职教STM32——串口通信(4)

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正因如此,才有了借助 CSDN 平台寻求认同感和成就感的想法。在这里,我准备陆续把自己花了很多心思的教学设计分享…...

Redis 缓存中间件 缓存数据库

Redis 缓存中间件 缓存数据库 nginx web服务 PHP 转发动态请求 tomcat web页面也可以转发动态请求 springboot 自带tomcat 所有的数据库不支持高并发&#xff0c;一旦访问量激增&#xff0c;数据库很快就会崩溃。 Redis 非关系型数据库 nosql not only sql 不仅仅是sql 键值对…...

51、PHP 实现简单的快速排序

题目&#xff1a; PHP 实现简单的快速排序 描述&#xff1a; function simpleQuickSort(array $list) {$length count($list);if( $length < 1){return $list;}else{$pivot $list[0];$left_list array();$right_list array();for($i 1; $i < $length; $i){if($lis…...

如何应对机器视觉软件中时间篡改与许可绕过的挑战?

在机器视觉行业&#xff0c;软件许可绕过和时间篡改问题存在&#xff0c;这些行为对企业的正常运营和市场竞争力造成了严重威胁。机器视觉软件通常包含复杂的算法和大量的数据处理能力&#xff0c;广泛应用于制造、医疗和安防等领域。然而&#xff0c;未经授权的使用和人为篡改…...

python文件的读写

要在Python中读写文件&#xff0c;你可以使用以下方法&#xff1a; 1. 打开文件&#xff1a;使用open()函数打开文件&#xff0c;它接受两个参数&#xff1a;文件名和模式。模式可以是只读&#xff08;r&#xff09;、写入&#xff08;w&#xff09;、追加&#xff08;a&#…...

2024下《网络工程师》案例简答题,刷这些就够了!

距离2024下半年软考已经越来越近了&#xff0c;不知道今年备考软考网络工程师的同学们开始准备了吗&#xff1f; 简答题一直是网工拿分的重点区域&#xff0c;对于许多考生来说&#xff0c;也往往是最具挑战性的部分。今天我就把那些重要的案例简答题类型整理汇总给大家&#x…...

Astro 实现TodoList网页应用案例

Astro 是一个现代化的静态站点生成器和前端框架&#xff0c;它具有独特的设计理念&#xff1a;岛屿架构。它允许开发人员使用组件化的方式构建内容优先的网站&#xff0c;将各种技术栈&#xff08;如React、Vue、Svelte等&#xff09;的组件无缝集成到同一个项目中。 1、创建项…...

计算机毕业设计Hadoop+Spark旅游景点可视化 旅游景点推荐系统 景区游客满意度预测与优化 Apriori算法 景区客流量预测 旅游大数据 景点规划

### 开题报告 **论文题目&#xff1a;** 基于Spark的旅游景点可视化系统的设计与实现 **研究背景与意义&#xff1a;** 随着旅游业的快速发展&#xff0c;人们对旅游信息的获取和处理需求越来越高。传统的旅游信息系统虽然能够提供静态的数据查询和展示功能&#xff0c;但在…...

MySQL存储

目录 1. MySQL存储引擎概述 2. 存储引擎的作用 3.存储引擎类型 4. 查看支持的存储引擎 6. InnoDB存储引擎 7. MyISAM与InnoDB的区别 8. 存储引擎的选择 9. 修改默认存储引擎 1. MySQL存储引擎概述 在MySQL中&#xff0c;数据通过不同的技术存储在文件&#xff08;或内存…...

手势传感器 - 从零开始认识各种传感器【第十八期】

手势传感器|从零开始认识各种传感器 1、什么是手势传感器 手势传感器是一种能够感知人类手势或动作的传感器。它可以捕捉、识别和解释人类的手部动作或姿势&#xff0c;并将其转换成电信号或数字信号&#xff0c;通过识别人体的手势动作来实现与电子设备的交互&#xff0c;如控…...

【未来餐饮】 配送设置

一、创建门店 关键信息 1. 门店名字要有辨识度&#xff0c;尽量不和其他客户重名 2. 地址要具体到门牌号 3. 定位要和上面的地址一致 可以复制地址搜索地图&#xff0c;然后选择位置 二、创建配送模板 新建模板 填写模板 命名模板&#xff0c;勾上真省钱&#xff0c;然后保…...

消费增值生态:从规则设计到商业价值实现

还在为用户复购低、留存弱、平台难长效而困扰&#xff1f;当多数商家还困在传统经营思路里止步不前&#xff0c;一套依托真实消费、贴合政策导向的增值生态已然崛起。它以合规为底、以价值为核、以闭环为骨架&#xff0c;正在重新定义平台与商家的增长逻辑&#xff0c;成为数字…...

LeetCode 200. 岛屿数量(C++):深度优先与广度优先的实战对比

1. 岛屿数量问题解析 第一次看到LeetCode 200题岛屿数量时&#xff0c;很多人会感到困惑&#xff1a;这个看似简单的矩阵遍历问题&#xff0c;为什么会被标记为中等难度&#xff1f;让我用一个生活中的例子来解释&#xff1a;想象你面前有一张卫星地图&#xff0c;上面蓝色代表…...

3D Face HRN开源镜像:ModelScope官方cv_resnet50_face-reconstruction部署

3D Face HRN开源镜像&#xff1a;ModelScope官方cv_resnet50_face-reconstruction部署 1. 引言&#xff1a;从2D照片到3D人脸的魔法转换 你是否曾经想过&#xff0c;仅仅通过一张普通的2D人脸照片&#xff0c;就能生成精确的3D人脸模型&#xff1f;这在过去可能需要专业设备和…...

【中文文献管理效率提升90%】茉莉花插件:科研工作者的智能文献处理解决方案

【中文文献管理效率提升90%】茉莉花插件&#xff1a;科研工作者的智能文献处理解决方案 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件&#xff0c;用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum…...

5个维度解析LimeReport:Qt框架下的高效全能报表生成解决方案

5个维度解析LimeReport&#xff1a;Qt框架下的高效全能报表生成解决方案 【免费下载链接】LimeReport Report generator for Qt Framework 项目地址: https://gitcode.com/gh_mirrors/li/LimeReport 在企业级应用开发中&#xff0c;报表功能往往是连接数据与决策的关键纽…...

如何快速突破iOS限制:终极降级完全手册

如何快速突破iOS限制&#xff1a;终极降级完全手册 【免费下载链接】downr1n downgrade tethered checkm8 idevices ios 14, 15. 项目地址: https://gitcode.com/gh_mirrors/do/downr1n 你是否曾想过让旧款iPhone重获新生&#xff1f;是否对苹果系统的版本限制感到困扰&…...

PingFangSC字体:跨平台专业中文排版的终极开源解决方案

PingFangSC字体&#xff1a;跨平台专业中文排版的终极开源解决方案 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件&#xff0c;包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 在当今数字化时代&#xff0c;跨平台字…...

OpenModScan:免费开源的Modbus调试工具完整指南

OpenModScan&#xff1a;免费开源的Modbus调试工具完整指南 【免费下载链接】OpenModScan Open ModScan is a Free Modbus Master (Client) Utility 项目地址: https://gitcode.com/gh_mirrors/op/OpenModScan 在工业自动化领域&#xff0c;Modbus通讯协议的调试和测试是…...

如何用ScanNetv2复现Stratified和SWIN3D论文实验?完整数据集配置指南

如何用ScanNetv2复现Stratified和SWIN3D论文实验&#xff1f;完整数据集配置指南 在3D点云分割领域&#xff0c;ScanNetv2数据集已成为评估算法性能的黄金标准。对于想要复现Stratified Transformer或SWIN3D这类前沿论文的研究者来说&#xff0c;数据集的正确配置往往是第一个…...

GEE快速入门:哨兵2号影像批量下载与去云处理指南

1. 为什么选择GEE处理哨兵2号影像&#xff1f; 如果你正在寻找一个免费、高效且无需本地高性能计算机的遥感数据处理方案&#xff0c;Google Earth Engine&#xff08;GEE&#xff09;绝对是你的首选。作为一个云端地理空间分析平台&#xff0c;GEE存储了海量的卫星影像数据&am…...