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

文件操作和IO - 2

目录

Java 中操作文件

File 概述

属性

构造方法

方法

getParent getName getPath getAbsolutePath getCanonicalPath

exists isFile isDirectory createNewFile 

delete deleteOnExit

list listFiles

mkdir mkdirs

完!


Java 中操作文件

Java 对于文件操作的 API

        1. 针对文件系统的操作。包括但不限于:创建文件,删除文件,重命名文件,列出目录内容...

        2. 针对文件内容的操作。读文件 / 写文件

Java 中针对文件系统的操作,使用 File 类来进行操作。这个类所在的包叫做 java.io

i:即 input(输入)o:即 output(输出)

如何记忆数据从 硬盘 道 CPU 叫做输入,还是 CPU 到硬盘的过程叫做输入呢???

有句名言叫:“屁股决定脑袋~~~”坐在那个位置,我们的想法就是怎么样的。对于计算机来说,CPU 是最关键的部分,我们就可以认为,我们的屁股是坐在 CPU 上来看待问题的。也就是说,硬盘 到 CPU 叫做输入~~

File 概述

属性

属性是路径之间的分隔符,会根据系统自动进行调整。实际开发中更建议直接使用 / 

构造方法

大多数情况下,我们使用第二种构造方法。

构造一个 File 对象,需要指定路径。此处的路径可以是绝对路径也可以是相对路径(这个路径也可以是不存在的路径)

如果写作相对路径。

        1. 如果是直接在 idea 中运行程序,则此时工作目录就是我们项目的所在目录。

        2. 如果是把代码打包成一个单独的 jar 包来执行,此时工作目录就是 jar 包所在的目录

如果是其他两种方式的话,例如 C:\Users\1\test.txt ==》 对于这个文件来说,parent 就是 C:Users\1

方法

getParent getName getPath getAbsolutePath getCanonicalPath

示例代码:

当我们在 C 盘下 Users 的 laideji 中有一个 test.txt 文件,使用绝对路径当作参数传入 File 中

打印结果如下:

getParent() 会得到父目录的路径,并且 getPath() getAbsolutePath() 和 getCanonicalPath() 的结果都是相同的

当我们注释掉绝对路径,而采用相对路径的时候:

打印结果如下:

研究打印结果发现,哇哦,有好多不相同的地方~~~

首先,这里的第一个方法 getParent() 方法仅仅打印了一个 . 来表示父目录

然后,getPath() 方法中的结果就是 File 构造方法中的参数

其次,getAbsolutePath() 方法中,和下面的 getCanoicalPath 方法对比,多了一个 .   这个 . 表示的是当前的路径,此处是先一层一层找到了 J2025_3_24 这一级目录,然后再找 . 此时 . 就是 J2025_3_24, 相当于是原地踏步了一下~ 而 getCanoicalPath 则是针对上面的绝对路径简化整理之后的效果了,没有了那个点~~~

exists isFile isDirectory createNewFile 

当我们在当前项目中,创建一个 test.txt 之后:

如果有代码:

打印结果如下:

第一个 ture 表示:File对象描述的文件真实存在,第二个 ture 表示的是 File对象描述的是文件,接下来的 false 表示的是 File对象描述的不是目录,最后 ret = false 表示的是,根据 File对象,没有成功创建一个空的文件,因为我们已经自己手动的在项目下面创建了 test.txt

delete deleteOnExit

如果我们想要删除文件:

运行后,项目下的 test.txt 就会被删除,同时 ret 为 true。 如果再运行一次,因为项目中已经没有了该文件,ret 就会打印 false

还有一种删除的方式是:退出时再删除,deleteOnExit 方法

代码如下:

刚开始程序运行的时候,项目下的 test.txt 并不会被删除,当 sleep 五秒之后,程序结束的时候,才会删除 test.txt 文件(有时候可能会出现,程序已经结束退出了,但是文件仍然能看到的情况,这个情况有可能是 IDEA 的延迟,文件其实已经没有了,但是 IDEA 文件列表并没有及时的刷新,我们手动 F5 刷新一下即可)

退出后再删除,这样的文件,也被称为“临时文件”。就比如 docx 就会有一个临时文件。我们正在编辑的内容,都是再内存中的,如果我们的电脑(台式机)突然断电,内存数据就没有了。因此想 word 这样的程序,会将我们正在编辑的内容写入到这个临时文件中,如果突然断电,临时文件仍然会存在,借助这个临时文件,就可以恢复之前并没有保存的数据~~~

比如,我们打开这个 Hello wowrld 的 docx 文件,然后再在这个文件的路径下查看,就会发现有一个隐藏的项目 docx 文件,这个文件就是临时文件~~~

list listFiles

返回 File对象目录下的所有文件名:

打印结果如下:

如果要以 File 对象表示的话:

打印结果如下:这样打印的就是 file 对象目录下的所有文件名的相对地址~

mkdir mkdirs

 创建 File 对象代表的目录:

代码如下:

运行完毕后,如果当先项目下没有名为 aaa 的目录,则会打印 ture,并创建一个名为 aaa 的目录

创建 File 对象代表的目录,如果有必要,会创建中间目录

代码示例:

上面我们已经创建了名为 aaa 的目录,要想在 aaa 下面创建一个 bbb 同时再在 bbb 下面创建 ccc,就可以使用 mkdirs 方法~~~

完!

相关文章:

文件操作和IO - 2

目录 Java 中操作文件 File 概述 属性 构造方法 方法 getParent getName getPath getAbsolutePath getCanonicalPath exists isFile isDirectory createNewFile delete deleteOnExit list listFiles mkdir mkdirs 完! Java 中操作文件 Java 对于文件操…...

⑪数据中心网络M-LAG实战

一、DeviceA-M-LAG-Mater配置 1、M-LAG 系统配置。 # m-lag mad exclude interface GigabitEthernet1/0/7 m-lag mad exclude interface Vlan-interface100 m-lag mad exclude interface Vlan-interface101 m-lag system-mac 0002-0002-0002 m-lag system-number 1 m-la…...

Win10系统安装WSL2-Ubuntu, 并使用VScode开始工作

本教程基于博主当前需要使用 WSL2(Windows Subsystem for Linux 2) 而编写,将自己使用的经过分享给大家。有什么意见建议敬请大家批评指正。此过程需要打开 Microsoft Store 话不多说,立即开始~ 文章目录 1. 检查系统版本2. 启动 WSL 功能3. 安装Ubuntu4…...

Node.js种cluster模块详解

Node.js 中 cluster 模块全部 API 详解 1. 模块属性 const cluster require(cluster);// 1. isMaster // 判断当前进程是否为主进程 console.log(是否为主进程:, cluster.isMaster);// 2. isWorker // 判断当前进程是否为工作进程 console.log(是否为工作进程:, cluster.isW…...

Window 10使用WSL2搭建Linux版Android Studio应用开发环境

一、背景 公司基于高通SA8155、SA8295等车载芯片进行座舱系统开发,使用repo统一管理系统及应用源码仓库。 Android应用端使用Ubuntu环境Android Studio进行开发,使用repo进行平台性管理,包含所有应用仓库。由于gradle配置使用了linux下文件软链接,无法直接使用Window环境…...

PostgreSQL 的统计信息

PostgreSQL 的统计信息 PostgreSQL 的统计信息是查询优化和性能调优的基础,系统通过多种统计信息来评估数据分布和访问模式,从而生成高效的执行计划。 一 统计信息类型与用途 1.1 核心统计类别 统计类型存储位置主要用途更新机制表和索引扫描统计pg_…...

【Linux】Linux基础指令

Linux系统初步介绍 Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。 严格来讲,Linux 只是操作系统内核本身,但通常采用“Linux内核”来表达该意思&#…...

【SLAM】在ORB_SLAM2的ROS模式下使用RealSense D435相机

本文介绍了如何在ORB_SLAM2项目中使用RealSense D435相机作为RGB-D输入源,包括ROS下启动D435相机、ORB_SLAM2订阅Topic、ORB_SLAM2读取realsense-viewer录制的rosbag文件等步骤。。 本文首发于❄慕雪的寒舍 1. 前言 先前已经编写了如何用TUM数据集运行ORB_SLAM3以及…...

scapy使用

https://scapy.readthedocs.io/en/latest/introduction.html 在 Mac 上使用 Scapy 抓取特定 IP 的流量并保存到 a.pcap 的步骤如下: 步骤 1:安装 Scapy 在终端中执行以下命令安装: pip install scapy步骤 2:创建 Python 脚本 …...

C2000 系统控制(4) — CPU Memory

CPU 内存 内存控制器 在 C2000 实时微控制器上,RAM 具有不同的特性。这些特性包括: CPU 专用:M0、M1 RAMCPU 和 CLA 共享:LSx RAMCPU、DMA 和 HIC 共享:GSx RAM用于在处理器之间发送和接收消息:MSG RAM …...

Linux网络编程——详解网络层IP协议、网段划分、路由

目录 一、前言 二、IP协议的认识 1、什么是IP协议? 2、IP协议报头 三、网段划分 1、初步认识IP与路由 2、IP地址 I、DHCP动态主机配置协议 3、IP地址的划分 I、CIDR设计 II、子网数目的计算 III、子网掩码的确定 四、特殊的IP地址 五、IP地址的数量限…...

解析医疗器械三大文档:DHF、DMR与DHR

医疗器械的 DHF、DMR 和 DHR 是质量管理体系(QMS)中的核心文件,贯穿产品全生命周期, 确保医疗器械的安全性、有效性和合规性。 一、三大文件的定义与法规依据 缩写全称法规依据(以 FDA 为例)核心目的DHF…...

SQL 全文检索原理

全文检索(Full-Text Search)是SQL中用于高效搜索文本数据的技术,与传统的LIKE操作或简单字符串比较相比,它能提供更强大、更灵活的文本搜索能力。 基本概念 全文检索的核心思想是将文本内容分解为可索引的单元(通常是词或词组),然后建立倒排…...

基于Rosen梯度投影法的约束优化问题求解及MATLAB实现

摘要 在工程优化、经济建模等领域,约束优化问题普遍存在,其核心是在满足线性或非线性约束条件下求解目标函数的极值。本文聚焦Rosen梯度投影法,系统阐述其算法原理、实现步骤及MATLAB编程方法。 关键词:Rosen梯度投影法&#xf…...

Model Context Protocol (MCP) - 尝试创建和测试一下MCP Server

1.简单介绍 MCP是Model Context Protocol的缩写,是Anthropic开源的一个标准协议。MCP使得大语言模型可以和外部的数据源,工具进行集成。当前MCP在社区逐渐地流行起来了。同时official C# SDK(仓库是csharp-sdk) 也在不断更新中,目前最新版本…...

Linux上位机开发实践(关于Qt的移植)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 linux平台上面,很多界面应用,都是基于qt开发的。不管是x86平台,还是arm平台,qt使用的地方都比较多。…...

Node.js 项目 用 `Docker Compose` 发布的完整流程

Node.js 项目 用 Docker Compose 发布的完整流程 ✅ 一、基本项目结构示例 以一个简单 Express 项目为例: my-node-app/ ├── app.js # 启动文件 ├── package.json ├── package-lock.json ├── Dockerfile # 构建 Node 容器 ├…...

Java基础:浅析Java中的XML文件处理

概述 XML&#xff08;全称Extensible Markup Language,可扩展标记语言&#xff09; .本质是一种数据的格式&#xff0c;可以用来存储复杂的数据结构&#xff0c;和数据关系 XML特点 1.XML中的“<标签名>”成为一个标签或者一个元素&#xff0c;一般成对出现的 2.XML…...

MCU刷写——S19(S-Record)文件格式详解及Python代码

工作之余来写写关于MCU的Bootloader刷写的相关知识,以免忘记。今天就来聊聊S19这种文件的格式,我是分享人M哥,目前从事车载控制器的软件开发及测试工作。 学习过程中如有任何疑问,可底下评论! 如果觉得文章内容在工作学习中有帮助到你,麻烦点赞收藏评论+关注走一波!感谢…...

HTML — 过渡与动画

HTML过渡与动画是提升网页交互体验的核心技术&#xff0c;主要通过CSS实现动态效果。 过渡 CSS过渡&#xff08;Transition&#xff09;介绍 适用于元素属性变化时的平滑渐变效果&#xff0c;如悬停变色、尺寸调整。通过定义transition-property&#xff08;过渡属性&#xf…...

python【标准库】multiprocessing

文章目录 介绍多进程Process 创建子进程共享内存数据多进程通信Pool创建子进程多进程案例多进程注意事项介绍 python3.10.17版本multiprocessing 是一个多进程标准模块,使用类似于threading模块的API创建子进程,充分利用多核CPU来并行处理任务。提供本地、远程的并发,高效避…...

BANK OF CHINA(HONG KONG)网点

BANK OF CHINA(HONG KONG)网点开户 ZoneBankAddressDates东区杏花邨分行香港柴湾杏花邨东翼商场205-208号20240415: 11:15, 13:00, 11:15, 13:00, 11:15, 13:0020240412: 11:15, 13:00东区鲗鱼涌分行香港鰂鱼涌英皇道1060号柏惠苑20240412: 09:45 注意事项 到达指定分行时&am…...

基于springboot的“嗨玩旅游网站”的设计与实现(源码+数据库+文档+PPT)

基于springboot的“嗨玩旅游网站”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;springboot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 局部E-R图 系统首页界面 系统注册…...

机器学习(3)——决策树

文章目录 1. 决策树基本原理1.1. 什么是决策树&#xff1f;1.2. 决策树的基本构成&#xff1a;1.3. 核心思想 2. 决策树的构建过程2.1. 特征选择2.1.1. 信息增益&#xff08;ID3&#xff09;2.1.2. 基尼不纯度&#xff08;CART&#xff09;2.1.3. 均方误差&#xff08;MSE&…...

【人脸识别中的“类内差异”和“类间差异】

核心问题&#xff1a;人脸识别中的“类内差异”和“类间差异” 想象你在教一个小朋友认人&#xff1a; 类间差异&#xff08;不同人之间的区别&#xff09;&#xff1a; 目标&#xff1a;让小朋友能分清“爸爸”和“妈妈”。方法&#xff1a;指着爸爸说“这是爸爸”&#xff0…...

第十六届蓝桥杯 省赛C/C++ 大学B组

编程题目现在在洛谷上都可以提交了。 未完待续&#xff0c;写不动了。 C11 编译命令 g A.cpp -o A -Wall -lm -stdc11A. 移动距离 本题总分&#xff1a;5 分 问题描述 小明初始在二维平面的原点&#xff0c;他想前往坐标 ( 233 , 666 ) (233, 666) (233,666)。在移动过程…...

SpringBoot3.0 +GraalVM21 + Docker 打包成可执行文件

SpringBoot3.0 GraalVM21 Docker 打包成可执行文件 前言 随着时代的飞速发展&#xff0c;JDK 17 及以上版本开始支持通过 GraalVM 将运行在 JVM 上的 jar 包直接打包成可在操作系统上运行的原生可执行文件。这一特性能使开发者在某些场景下更加灵活地部署 Java 程序。 在云原…...

从编程范式看 “万物皆智能,万事皆自动” 愿景

从编程范式看“万物皆智能,万事皆自动”愿景 引言 在信息技术飞速发展的今天,“万物皆智能,万事皆自动”成为了众多 IT 从业者和科技爱好者心中的终极愿景。这一愿景描绘了一个所有事物都具备智能、所有事情都能自动完成的美好未来。而在实现这一愿景的征程中,面向对象编…...

Vue 项目中 package.json 文件的深度解析

Vue 项目中 package.json 文件的深度解析 在 Vue 项目中&#xff0c;package.json 文件是项目配置的核心&#xff0c;它管理着项目的依赖关系、脚本命令、版本信息等重要内容。正确理解和配置 package.json 文件&#xff0c;对于项目的开发、构建、测试和部署都至关重要。本文…...

解决2080Ti使用节点ComfyUI-PuLID-Flux-Enhanced中遇到的问题

使用蓝大的工作流《一键同时换头、换脸、发型、发色之双pulid技巧》 刚开始遇到的是不支持bf16的错误 根据《bf16 is only supported on A100 GPUs #33》中提到&#xff0c;修改pulidflux.py中的dtype 为 dtype torch.float16 后&#xff0c;出现新的错误&#xff0c;这个…...

1 程序的本质,计算机语言简史,TIOBE 指数,C 语言的独特魅力、发展历程、发行版本和应用场景

&#x1f44b; 嘿&#xff0c;各位编程探险家们&#xff01;是不是一提到 C 语言&#xff0c;脑海中就浮现出指针乱舞、内存泄漏的恐怖画面&#xff1f;别怕&#xff0c;你并不孤单&#xff01;&#x1f605; 今天&#xff0c;你踏入了这个专为 “C 语言恐惧症” 患者打造的避…...

python格式化字符串漏洞

什么是python格式化字符串漏洞 python中&#xff0c;存在几种格式化字符串的方式&#xff0c;然而当我们使用的方式不正确的时候&#xff0c;即格式化的字符串能够被我们控制时&#xff0c;就会导致一些严重的问题&#xff0c;比如获取敏感信息 python常见的格式化字符串 百…...

撰写学位论文Word图表目录的自动生成

第一步&#xff1a;为图片和表格添加题注 选中图片或表格 右键点击需要编号的图片或表格&#xff0c;选择 【插入题注】&#xff08;或通过菜单栏 引用 → 插入题注&#xff09;。 设置题注标签 在弹窗中选择 标签&#xff08;如默认有“图”“表”&#xff0c;若无需自定义标…...

SDC命令详解:使用相对路径访问设计对象(current_instance命令)

相关阅读 SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482 在使用get_cells等命令访问设计对象时&#xff0c;需要指定设计对象的名字&#xff0c;这个名字是一个相对路径&#xff0c;本文就将对此进行讨论。 相对路径 使…...

vector的应用

在平常使用c是&#xff0c;只使用普通数组肯定不够便捷&#xff0c;这时&#xff0c;我们就可以使用vector来使代码更加简洁 目录 1.vector的定义 2.在vector末尾增加一个元素 3.输出元素 &#xff08;1&#xff09;输出单个元素 &#xff08;2&#xff09;循环输出元素 4…...

pytorch查询字典、列表维度

输出tensor变量维度 print(a.shape)输出字典维度 for key, value in output_dict.items():if isinstance(value, torch.Tensor):print(f"{key} shape:", value.shape)输出列表维度 def get_list_dimensions(lst):# 基线条件&#xff1a;如果lst不是列表&#xff0…...

征程 6 VIO Frame 时间戳介绍

1. 时间类型 征程 6 内部的时间类型如下 Linux 系统时间是基于 arm system counter 抽象的&#xff0c;Linux 的基于 arm system counter 抽象了很多种时间&#xff0c;图中画了两种。CLOCK_MONOTONIC_RAW 是不会被时间同步调整的。 2. Frame 时间戳 从 VIO 侧获取的图像数…...

DotnetCore开源库SampleAdmin源码编译

1.报错: System.Net.Sockets.SocketException HResult0x80004005 Message由于目标计算机积极拒绝&#xff0c;无法连接。 SourceSystem.Net.Sockets StackTrace: 在 System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, C…...

QML之ScrollView(滚动视图)

ScrollView 是 Qt Quick Controls 2 中提供的可滚动视图容器&#xff0c;用于创建可滚动区域。以下是详细使用方法&#xff1a; 基本用法 qml import QtQuick 2.15 import QtQuick.Controls 2.15ScrollView {id: scrollViewwidth: 300height: 200clip: true// 背景设置&…...

FreeRTOS使任务处于就绪状态的API

在FreeRTOS中,任务的**就绪状态(Ready State)**意味着任务已准备好运行,但尚未被调度器分配CPU时间。以下是通过API使任务进入就绪状态的常见方法及其分类: 1. 恢复被挂起的任务 vTaskResume(TaskHandle_t xTaskToResume) 将被挂起(Suspended)的任务恢复为就绪状态。 示…...

第四篇:Python文件操作与异常处理

第一章&#xff1a;文件操作基础与核心原理 1.1 文件系统基础 文件系统是操作系统用于管理存储设备中数据的核心机制。Python通过内置的open()函数实现文件操作&#xff0c;支持文本文件&#xff08;.txt、.csv&#xff09;和二进制文件&#xff08;.jpg、.dat&#xff09;的…...

蓝桥杯 嵌入式 小结

一、BSP模版 1. Key 按键扫描模版&#xff0c;需要注意的是 key_val 。 uint8_t Key_Scan(void) {uint8_t key_val0;if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)GPIO_PIN_RESET){key_val1;}if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)GPIO_PIN_RESET){key_val2;}if(HAL_GPIO_ReadPin(…...

【音视频】SDL渲染YUV格式像素

SDL视频显示的流程 实现流程 准备视频文件 准备一个格式为yuv420p&#xff0c;分辨率为320x240的yuv数据&#xff0c;并且将视频文件放入项目构建的目录下&#xff1a; 初始化SDL 初始化SDL的视频模块 //初始化 SDL if(SDL_Init(SDL_INIT_VIDEO)) {fprintf( stderr, "…...

ThingsBoard3.9.1 MQTT Topic(1)

1.网关转发子设备的遥测信息, Topic:v1/gateway/telemetry { "m1": [{ "mode": "CW", "temperature": 23 }], "m2": [{ "mode": "CW", "temperature": 23 }] } 说明&#xff1a;json格式&a…...

如何查看自己抖音的IP属地?详细教程+常见问题解答

在当今互联网时代&#xff0c;IP属地信息已成为各大社交平台&#xff08;如抖音、微博、快手等&#xff09;展示用户真实网络位置的重要功能。无论是出于隐私保护、账号安全&#xff0c;还是单纯好奇自己的IP归属地&#xff0c;了解如何查看抖音IP属地都很有必要。 本文将详细介…...

李宏毅NLP-2-语音识别part1

语音识别part1 这是一篇名为 “Speech Recognition is Difficult?”&#xff08;语音识别很难吗&#xff1f; &#xff09;的文章。作者是 J.R. Pierce&#xff0c;来自贝尔电话实验室&#xff08;Bell Telephone Laboratories, Inc.&#xff09; 。文中提到语音识别虽有吸引力…...

AUTOSAR图解==>AUTOSAR_SWS_MemoryMapping

AUTOSAR 内存映射机制详解 深入解析AUTOSAR标准中的内存映射技术 目录 AUTOSAR 内存映射机制详解 目录1. 概述2. 内存映射架构 2.1 架构组成2.2 映射类型2.3 关键组件3. 配置数据模型 3.1 主要配置容器3.2 内存段类型3.3 初始化策略4. 映射使用流程 4.1 配置阶段4.2 开发阶段...

探索 HTML5 新特性:提升网页开发的现代体验

在 Web 开发的演进历程中&#xff0c;HTML5 无疑是一座重要的里程碑。它不仅为网页带来了更丰富的功能&#xff0c;还提升了开发效率与用户体验。本文将深入探讨 HTML5 那些令人瞩目的新特性&#xff0c;助你紧跟现代 Web 开发潮流。 一、语义化标签&#xff1a;让结构更清晰 …...

系统设计思维的讨论

我们经常说自己熟悉了spring&#xff0c;能够搭建起一个项目基本框架&#xff0c;并且在此之上进行开发&#xff0c;用户or客户提出需求碰到不会的百度找找就可以实现。干个四五年下一份工作就去面试架构师了&#xff0c;运气好一些可能在中小公司真的找到一份架构师、技术负责…...

【音视频】SDL播放PCM音频

相关API 打开音频设备 int SDLCALL SDL_OpenAudio(SDL_AudioSpec * desired, SDL_AudioSpec * obtained); desired&#xff1a;期望的参数。obtained&#xff1a;实际音频设备的参数&#xff0c;一般情况下设置为NULL即可。 SDL_AudioSpec typedef struct SDL_AudioSpec { i…...