【JAVA】#详细介绍!!! 文件操作之File对象(1)!
本文内容不涉及文件内容操作,主要是对指定文件元信息的获取,以及通过java代码如何创建一个文件或者删除文件
目录
文件操作的File对象
File对象的基本操作方法
得到文件(夹)对象的信息元
1.getParent
2. getName
3.getPath
4. getAbsolutePath和getCanonicalPath
文件和目录的创建
文件的创建:createNewFile
目录的创建:mkdir和mkdirs
文件(夹)的删除
直接删除:delete
程序执行结束再删除:deleteOnExit

文件操作的File对象
Java 中通过 java.io.File 类来对一个文件(包括目录)进行抽象的描述。
注意:有 File 对象,并不代表真实存在该文件
构造一个File对象,参数为String类型(文件(夹)的路径),可以同时构造一个父路径和一个孩子路径或者文件
这个路径可以是绝对路径也可以是相对路径(相对路径以当前项目的文件夹路径作为参照物)
使用File类时记得调包(ava.io.File)

File file = new File("路径")
注意:当前构建的文件对象不一定真实存在
public class Test {public static void main(String[] args) throws IOException {File file = new File("test.txt");System.out.println(file.exists());}
}
结果:

例如这里用相对路径在当前项目文件夹中构造了一个test.txt文件的对象file
这里调用exists方法查看当前对象是否真实存在,结果为false
实际上当前java项目的文件夹中确实没有这个test.txt文件

File对象的基本操作方法

得到文件(夹)对象的信息元

1.getParent方法
获得file对象的父目录文件路径:
分两种情况:
1. 如果是绝对地址创建的对象,那么直接调用getParent方法可以正常返回父目录的文件路径
2.如果是相对地址创建的对象,直接调用则可以会返回错误的文件路径,因为getParent是以你构建的对象的参数做为返回依据的,例如相对路径为 ../test.txt ,则返回的getParent结果则为 .. 而不是真正的父目录,甚至如果相对路径为 test.txt ,前面没有路径作为参数了,返回的getParent结果会为null;此时需要借助getCanonicalFile方法,以修饰后的绝对路径进行路径转换再调用getParent得到父目录
代码:
File file = new File("../text.txt");
System.out.println(file.getCanonicalFile().getParent());
2. getName
这个没什么多说的,就是返回FIle对象的纯文件(夹)名称
例如:test.txt这个文件对象不管是绝对路径还是相对路径创建的对象,那么返回的就是test.txt,getName针对的是最后具体的文件
3.getPath
返回当前文件对象的路径
实际就是返回这个对象创建时构造的路径参数
如果是绝对地址构建的对象,返回的绝对地址,如果是相对地址构建的对象,返回的就是相对地址
代码:
File file = new File("../test.txt");
System.out.println(file.getPath());

4. getAbsolutePath和getCanonicalPath
都是以绝对路径的形式返回对象的路径地址
区别:getAbsolutePath是不经过修饰的绝对地址,会把相对路径的地址完整包含进去,组成一个未修饰的路径
getCanonicalPath是经过修饰的绝对地址,中间绝对相对路径就自动进行转化
代码:
File file = new File("../test.txt");
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());

getABsolutePath把完整的相对路径不经过缩减直接把连接符都加上去了组成绝对路径
文件和目录的创建
文件的创建:createNewFile
![]()
使用createNewFile
可以先用exists方法先判断这个文件是否存在,避免在不知情的时创建失败
代码:
File file = new File("test.txt");
if(!file.exists()){System.out.println(file.createNewFile()); // 第一次创建
}
System.out.println(file.createNewFile()); //第二次创建
![]()
由于我的项目目录中没有test.txt文件,所以exists方法判断的时false,
此时第一次创建的结果未true,已经创建完成,所以第二次创建的结果未false
目录的创建:mkdir和mkdirs

mkdir只能一次性创建一个目录,mkdirs可以一次性创建多个目录
File file = new File("test");
System.out.println(file.mkdir()); //在当前项目路径下创建一个test的目录File file2 = new File("test1/test2");
System.out.println(file2.mkdirs()); //在当前项目路径下创建一个test1的目录,并在其中创建一个test2的子目录


文件(夹)的删除
直接删除:delete
![]()
使用delete方法,就能对路径对象的文件进行删除
例子:删除前面创建的test.txt文件
File file = new File("test.txt");
System.out.println(file.delete());

注意:目录也是相同方式操作,只不过要注意的是,目录需要先删除里层的目录,才能删掉外层的目录
程序执行结束再删除:deleteOnExit

效果和前面的delete相似,只不过delete是执行到代码就直接删除对象文件,而deleteOnExit是把整个代码执行完才删除对象文件
本篇文章介绍到这里就差不多了,本篇文章并不涉及到文件内容的操作,只是介绍了基本的文件对象的构造和文件的创建和删除,以及介绍了一些常用的File方法



相关文章:
【JAVA】#详细介绍!!! 文件操作之File对象(1)!
本文内容不涉及文件内容操作,主要是对指定文件元信息的获取,以及通过java代码如何创建一个文件或者删除文件 目录 文件操作的File对象 File对象的基本操作方法 得到文件(夹)对象的信息元 1.getParent 2. getName 3.getPath 4…...
Vue基本的内置指令
前言 除了常见的v-bind,v-for,v-if,v-on.v-model等,本次学习一些vue提供的其他内置指令 1 v-text 给标签插入文本,类似于插值语法 它会把全部的字符串当成文本去解析,不会当成标签的,哪怕写的是标签结构 效果和插值语法是一样的 插值语法比v-text更加…...
华为孟晚舟当值首秀:2030年AI算力将增长500倍!
作者 | 范智林 来源 | 华商观察 微信号:HuashangGC 孟晚舟当值首次亮相。 4月19日,华为副董事长、轮值董事长、CFO孟晚舟在华为第20届全球分析师大会上进行演讲,这是她当值华为轮值董事长以来的首次公开亮相。 按照华为内部规定,…...
关于python异常的总结
Python异常是在程序执行时发生的错误,可能会导致程序终止运行。 在Python中,异常处理是一种机制,它允许开发人员在程序发生异常时捕获、处理和报告这些异常,以便程序可以继续运行或在出现异常时进行优雅的退出。 在Python中&…...
基于Java+SpringBoot+vue学生学习平台详细设计实现
基于JavaSpringBootvue学生学习平台详细设计实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文章目…...
【云原生网关】Kong 使用详解
目录 一、前言 二、Kong介绍 三、Kong核心组件 3.1 kong组件介绍 3.1.1 Kong Server 3.1.2 Apache Cassandra/PostgreSQL 3.1.3 Kong dashboard 3.2 传统网关与Kong工作模式对比 四、Kong网关特征与架构 4.1 kong网关特征 4.1.1 可扩展性 4.1.2 模块化 4.1.3 在任…...
浅谈之Java多线程
Java多线程是Java语言中一个非常重要的特性,它允许程序同时执行多个任务。通过多线程,程序可以同时处理多项任务,从而缩短程序的执行时间。另外,多线程也有助于利用多核处理器,更好地发挥计算机硬件的性能。 那我们在…...
【Vue3学习笔记1】一个清单应用帮你入门Vue.js
Vue 目前已经是国内最流⾏的前端框架之⼀,Vue 3 带来的诸多优化更是让前端圈迎来了新的潮流,比如: 基于 Proxy 的全新响应式实现; Composition API <script setup> 组织代码的更优方式; 更有料的 TypeScript 支…...
go破冰之旅·8·go函数基本实践及各种玩法
一次5-10分钟即可搞定,以干货效率的学习方式带你更直观的玩转各种玩法! 行文不易,一字一句纯手打创造,倾注了不少精力,感谢支持。 目录 什么是函数?有哪些元素? 函数参数、返回值 小程序&…...
Qt - 从零到壹的 打地鼠 游戏
❤️🔥欢迎收看西北风的blog,好男人就是我,我就是西北风。✨ Gitee 地址 W_A_Mole NTC_jason/cc语言 - 码云 - 开源中国 (gitee.com) 目录 🟥一:创建一个主窗体 🟣二.:添加主窗口背景图片…...
代码自动发布系统
之前是jenkins发现gitlab代码更新了就自动获取直接部署到服务器 现在是jenkins自动获取Code之后打包成镜像上传到仓库然后通知docker去拉取更新的镜像 分析 旧∶ 代码发布环境提前准备,以主机为颗粒度静态 新: 代码发布环境多套,以容器为颗粒度编译 …...
qemu-基础篇(一)——安装
文章目录 env安装查看版本查看支持的开发板查看支持的CPU的型号 env ubuntu 安装 sudo apt-get install qemu sudo apt-get install qemu-system-arm sudo apt-get install qemu-system查看版本 qemu-img -V qemu-system-arm --version qemu-system-aarch64 --version返回结…...
从根本上理解Synchronized的加锁过程
作为一个Java开发,对于Synchronized这个关键字并不会陌生,无论是并发编程,还是与面试官对线,Synchronized可以说是必不可少。 在JDK1.6之前,都认为Synchronized是一个非常笨重的锁,就是在之前的《谈谈Java…...
CANOE入门到精通——CANOE系列教程记录1 第一个仿真工程
本系列以初学者角度记录学习CANOE,以《CANoe开发从入门到精通》参考学习,CANoe16 demo版就可以进行学习 概念 CANoe是一种用于开发、测试和分析汽车电子系统的软件工具。它通过在不同层次上模拟汽车电子系统中的不同部件,如ECU、总线和传感…...
JavaEE——单例模式
文章目录 一、介绍什么是单例模式二、饿汉模式三、懒汉模式四、讨论两种模式的线程安全问题 一、介绍什么是单例模式 在介绍单例模式之前,我们得先明确一个名词设计模式。 所谓设计模式其实不难理解,就是在计算机这个圈子中,呢些大佬们为了…...
关于数据倾斜
1、数据倾斜表现 1.1 hadoop中的数据倾斜表现 有一个多几个Reduce卡住,卡在99.99%,一直不能结束。各种container报错OOM异常的Reducer读写的数据量极大,至少远远超过其它正常的Reducer伴随着数据倾斜,会出现任务被kill等各种诡异…...
Shell第一次作业
要求: 1、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。 2、判断web服务是否运行(1、查看进程的方式判断该程序是否运行,2、通过查看端口的方式判断…...
实例解读nn.AdaptiveAvgPool2d((1, 1))
nn.AdaptiveAvgPool2d((1, 1))在PyTorch中创建一个AdaptiveAvgPool2d类的实例。该类在输入张量上执行2D自适应平均池化。 自适应平均池化是一种池化操作,它计算每个输入子区域的平均值并产生一个指定大小的输出张量。子区域的大小是根据输入张量的大小和输出张量的…...
泛型编程 之模板(template)
C另一种编程思想称为 泛型编程,主要利用的技术就是模板 目录 C另一种编程思想称为 泛型编程,主要利用的技术就是模板 一、概念 二、函数模板 1、语法与使用: 2、函数模板注意事项 3、普通函数与函数模板的区别 4、普通函数与函数模板的调用规…...
用ChatGPT问DotNet的相关问题,发现DotNet工程师的前景还不错
本人最近费了九牛二虎之力注册了一个ChatGPT账号,现在就给大家分享一下,问一下关于.NET的问题,看看ChatGPT的AI功能具体如何? 一、C#跟其它语言比较的优势 回答: C#是一门编程语言,它是为 Microsoft 的 …...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
pycharm 设置环境出错
pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...
