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

操作文件-Path

Java操作文件-Path

Paths

  • 参数说明
    • first:必选参数,表示路径的第一个组件。
    • more:可选参数,表示路径的其他组件,可以传入多个。

创建路径对象

// 创建一个表示当前工作目录的Path对象
Path currentPath = Paths.get("");
System.out.println("Current Path: " + currentPath);// 创建一个表示绝对路径的Path对象
Path absolutePath = Paths.get("C:/Users/username/Documents");
System.out.println("Absolute Path: " + absolutePath);// 创建一个表示相对路径的Path对象
Path relativePath = Paths.get("src/main/java/com/example");
System.out.println("Relative Path: " + relativePath);// 创建一个带有多个路径组件的Path对象
Path nestedPath = Paths.get("C:/", "Users", "username", "Documents", "JavaProjects");
System.out.println("Nested Path: " + nestedPath);

Path

  • resolve

resolve(String other)方法用于将当前路径解析为另一个路径。它接受一个字符串参数other,可以是相对路径或者绝对路径。示例中,将当前路径与subfolder/file.txt组合,返回一个新的Path对象resolvedPath,表示完整的路径D:\MyFolder\文档和软件\subfolder\file.txt

  • resolveSibling

resolveSibling(String other)方法与resolve()类似,但是它是相对于当前路径的父路径进行解析的。示例中,将当前路径的父路径与anotherFolder组合,返回一个新的Path对象resolvedSiblingPath,表示路径D:\MyFolder\anotherFolder

  • relativize

relativize(Path other)方法用于计算两个路径之间的相对路径。示例中,假设otherPath表示另一个路径D:\MyFolder\文档和软件\subfolder\file.txt,则relativePath表示从pathotherPath的相对路径subfolder\file.txt

  • normalize

normalize()方法用于标准化路径。它消除路径中的冗余部分,例如.(当前目录)和..(上级目录)。示例中,normalizedPath将返回一个标准化后的路径对象,即D:\MyFolder\文档和软件

  • toAbsolutePath

toAbsolutePath()方法返回当前路径的绝对路径形式。示例中,如果path是相对路径,则absolutePath会返回其绝对路径形式;如果path已经是绝对路径,则返回路径本身。

  • getParent

getParent()方法返回当前路径的父路径。示例中,如果pathD:\MyFolder\文档和软件,则parentPath会返回D:\MyFolder

  • toFile

toFile()方法将Path对象转换为对应的java.io.File对象。这在需要与旧版Java API或需要使用File对象的库中特别有用。

Path path = Path.of("D:\\MyFolder\\文档和软件");// resolve(String other)方法用于将当前路径解析为另一个路径。它接受一个字符串参数other,可以是相对路径或者绝对路径。示例中,将当前路径与subfolder/file.txt组合,返回一个新的Path对象resolvedPath,表示完整的路径D:\MyFolder\文档和软件\subfolder\file.txt。
Path resolvedPath = path.resolve("subfolder/file.txt");
// D:\MyFolder\文档和软件\subfolder\file.txt
System.out.println(resolvedPath);// `resolveSibling(String other)`方法与`resolve()`类似,但是它是相对于当前路径的父路径进行解析的。示例中,将当前路径的父路径与`anotherFolder`组合,返回一个新的`Path`对象`resolvedSiblingPath`,表示路径`D:\MyFolder\anotherFolder`。
Path siblingResolvedPath = path.resolveSibling("anotherFolder");
System.out.println(siblingResolvedPath);// `relativize(Path other)`方法用于计算两个路径之间的相对路径。示例中,假设`otherPath`表示另一个路径`D:\MyFolder\文档和软件\subfolder\file.txt`,则`relativePath`表示从`path`到`otherPath`的相对路径`subfolder\file.txt`。
Path siblingResolvedPath2 = path.resolveSibling("anotherFolder");
System.out.println(siblingResolvedPath2);// relativize(Path other)方法用于计算两个路径之间的相对路径。示例中,假设otherPath表示另一个路径D:\MyFolder\文档和软件\subfolder\file.txt,则relativePath表示从path到otherPath的相对路径subfolder\file.txt。
Path otherPath = Path.of("D:\\MyFolder\\文档和软件\\subfolder\\file.txt");
Path relativePath = path.relativize(otherPath);
System.out.println(relativePath);// normalize()方法用于标准化路径。它消除路径中的冗余部分,例如.(当前目录)和..(上级目录)。示例中,normalizedPath将返回一个标准化后的路径对象,即D:\MyFolder\文档和软件。
Path absolutePath = path.toAbsolutePath();
System.out.println("absolutePath:" + absolutePath);// getParent()方法返回当前路径的父路径。示例中,如果path是D:\MyFolder\文档和软件,则parentPath会返回D:\MyFolder。
Path parentPath = path.getParent();
System.out.println(parentPath);// getRoot()方法返回当前路径的根路径部分。对于D:\MyFolder\文档和软件,rootPath将返回D:\作为根路径。
Path rootPath = path.getRoot();
System.out.println(rootPath);// toFile()方法将Path对象转换为对应的java.io.File对象。这在需要与旧版Java API或需要使用File对象的库中特别有用。
File file = path.toFile();
System.out.println(file);

相关文章:

操作文件-Path

Java操作文件-Path Paths 参数说明 first:必选参数,表示路径的第一个组件。more:可选参数,表示路径的其他组件,可以传入多个。 创建路径对象 // 创建一个表示当前工作目录的Path对象 Path currentPath Paths.get…...

RAC(Teamcenter )开发,Bom行解包和打包的方法

1、打包 UnpackAllAction allAction new UnpackAllAction((AbstractBOMLineViewerApplication) currentApplication, "packAllAction"); new Thread(allAction).start();2、解包 UnpackCommand command new UnpackCommand(bomLine); command.executeModal();3、注…...

log4j2漏洞练习

log4j2 是Apache的一个java日志框架,我们借助它进行日志相关操作管理,然而在2021年末log4j2爆出了远程代码执行漏洞,属于严重等级的漏洞。apache log4j通过定义每一条日志信息的级别能够更加细致地控制日志生成地过程,受影响的版本…...

OpenEuler安装部署教程

目录 OpenEuler安装部署教程 MobaXterm一款全能的远程工具 yum安装软件 vim编辑器(了解) 防火墙 常用命令 网络工具netstat & telnet 进程管理工具top ps 磁盘free、fdisk 用户、组(了解) 权限(了解&am…...

Canto - hackmyvm

简介 靶机名称:Canto 难度:简单 靶场地址:https://hackmyvm.eu/machines/machine.php?vmCanto 本地环境 虚拟机:vitual box 靶场IP(Canto):192.168.130.53 windows_IP:192.1…...

【数据结构进阶】手撕红黑树

🔥个人主页: Forcible Bug Maker 🔥专栏: C || 数据结构 目录 🌈前言🔥红黑树的概念🔥手撕红黑树红黑树结点的定义红黑树主体需要实现的成员函数红黑树的插入findEmpty和Size拷贝构造析构函数和…...

【C++从小白到大牛】类和对象

目录 一、面向过程和面向对象初步认识 二、类的引入 三、类的定义 类的成员函数两种定义方式: 1. 声明和定义全部放在类体中 2. 类声明放在.h文件中,成员函数定义放在.cpp文件中 成员变量命名规则的建议: 四、类的访问限定符 【访问限…...

Kafka 为什么这么快的七大秘诀,涨知识了

我们都知道 Kafka 是基于磁盘进行存储的,但 Kafka 官方又称其具有高性能、高吞吐、低延时的特点,其吞吐量动辄几十上百万。 在座的靓仔和靓女们是不是有点困惑了,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间。…...

一文解决3D车道线检测:最新单目3D车道线检测综述

前言 场景理解是自动驾驶中极具挑战的任务,尤其是车道检测。车道是道路分割的关键,对车辆安全高效行驶至关重要。车道检测技术能自动识别道路标记,对自动驾驶车辆至关重要,缺乏这项技术可能导致交通问题和事故。车道检测面临多种…...

稳中向好,今年新招6000人

团子校招 近日,美团宣布开启面向 2025 届的校园招聘,招聘规模达 6000 人。 虽然相比京东(宣布招聘 16000 人)稍有逊色,但 6000 这个校招规模可一点不少。 要知道,京东是重自营的传统电商,16000 …...

使用kettle开源工具进行跨库数据同步

数据库同步可以用: 1、Navicat 2、Kettle 3、自己写代码 调用码神工具跨库数据同步 -连接 4、其它 实现 这里使用Kettle来同步,主要是开源的,通过配置就可以实现了 Kettle的图形化界面(Spoon)安装参考方法 ht…...

Golang | Leetcode Golang题解之第307题区域和检索-数组可修改

题目: 题解: type NumArray struct {nums, tree []int }func Constructor(nums []int) NumArray {tree : make([]int, len(nums)1)na : NumArray{nums, tree}for i, num : range nums {na.add(i1, num)}return na }func (na *NumArray) add(index, val …...

Golang | Leetcode Golang题解之第301题删除无效的括号

题目&#xff1a; 题解&#xff1a; func checkValid(str string, lmask, rmask int, left, right []int) bool {cnt : 0pos1, pos2 : 0, 0for i : range str {if pos1 < len(left) && i left[pos1] {if lmask>>pos1&1 0 {cnt}pos1} else if pos2 <…...

【Story】《程序员面试的“八股文”辩论:技术基础与实际能力的博弈》

目录 程序员面试中的“八股文”&#xff1a;助力还是阻力&#xff1f;1. “八股文”的背景与定义1.1 “八股文”的起源1.2 “八股文”的常见类型 2. “八股文”的作用分析2.1 理论基础的评价2.1.1 助力2.1.2 阻力 3. 实际工作能力的考察3.1 助力3.2 阻力 4. 面试中的背题能力4.…...

初步了解泛型

目录 泛型的引入 泛型 泛型 泛型类 泛型的上界 泛型的引入 之前学习的数组里面是存放着整型或者自字符串中一种的数组&#xff0c;如果想要在一个数组里面放多种类型数据&#xff0c;我们该怎么去做呢&#xff1f;Object类或许是一个好的解决方法&#xff0c;因为Object类…...

【C#】.net core 6.0 webapi 使用core版本的NPOI的Excel读取数据以及保存数据

欢迎来到《小5讲堂》 这是《C#》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 背景读取并保存NPOI信息NPOI 插件介绍基本功能示例代码写入 Excel 文件…...

C++推荐的oj网站

洛谷 信息学奥赛一本通 C语言网 codeforces 杭电oj...

springmvc处理http请求的底层逻辑

http-nio-8088-Poller线程中在org.apache.tomcat.util.net.NioEndpoint.Poller#run这个函数里循环检测selector&#xff0c;若发现有SocketEvent.OPEN_READ事件则会将SelectionKey.attachment中的内容作为入参包装成runable&#xff0c;然后由org.apache.tomcat.util.threads.T…...

干货满满,从零到一:编程小白如何在大学成为编程大神?

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…...

前端-如何通过docker打包Vue服务成镜像并在本地运行(本地可以通过http://localhost:8080/访问前端服务)

1、下载安装docker&#xff0c;最好在vs code里安装docker的插件。 下载链接&#xff1a;https://www.docker.com/products/docker-desktop &#x1f389; Docker 简介和安装 - Docker 快速入门 - 易文档 (easydoc.net) 2、准备配置文件-dockerfile文件和nginx.conf文件 do…...

Graphviz自动排版太随机?教你5个技巧精准控制节点位置

Graphviz自动排版太随机&#xff1f;5个专业技巧精准控制节点位置 当你用Graphviz绘制关系图时&#xff0c;是否遇到过这样的困扰&#xff1a;明明代码逻辑清晰&#xff0c;生成的图表却总是不按预期排列&#xff1f;节点位置随机跳跃&#xff0c;关键元素错位&#xff0c;甚至…...

智能网联汽车(CAV)缩略语大全:从C-V2X到VRUCW,一文搞懂所有专业术语

智能网联汽车(CAV)术语全解析&#xff1a;从技术原理到场景应用 在智能交通系统快速发展的今天&#xff0c;智能网联汽车(Connected-Automated Vehicle, CAV)已经成为行业变革的核心驱动力。无论是汽车工程师、软件开发人员还是交通规划者&#xff0c;都需要掌握这一领域的关键…...

Z-Image i2L模型压缩技术:轻量化部署实践指南

Z-Image i2L模型压缩技术&#xff1a;轻量化部署实践指南 1. 引言 当你兴奋地部署了一个强大的图像生成模型&#xff0c;却发现设备内存告急、推理速度慢如蜗牛&#xff0c;这种体验确实让人沮丧。Z-Image i2L作为一款创新的图像到LoRA模型&#xff0c;虽然功能强大&#xff…...

StructBERT-Large本地化部署实战:无需联网、不传数据、隐私安全的语义匹配解决方案

StructBERT-Large本地化部署实战&#xff1a;无需联网、不传数据、隐私安全的语义匹配解决方案 你是不是经常需要判断两句话是不是一个意思&#xff1f;比如&#xff0c;检查用户提交的答案是否和标准答案一致&#xff0c;或者判断两篇新闻稿是不是在说同一件事。过去&#xf…...

Unity WebGL输入优化:跨平台文本输入解决方案的技术突破

Unity WebGL输入优化&#xff1a;跨平台文本输入解决方案的技术突破 【免费下载链接】WebGLInput IME for Unity WebGL 项目地址: https://gitcode.com/gh_mirrors/we/WebGLInput 在Unity WebGL应用的开发过程中&#xff0c;文本输入功能一直是开发者面临的核心挑战。传…...

【无线通信】基于统计信道的低复杂度旋转和位置优化为6D可移动天线无线通信附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

先整个经典的入门款耶路撒冷十字电阻吸波器玩吧,就冲5.8GHz的WiFi频段调——毕竟现在连吸波材料都得先蹭蹭网络信号的热度才好入门嘛

CST仿真吸波器选5.8GHz有个小小心思&#xff1a;单层电阻超材料的谐振频率一般和单元边长相关&#xff0c;大概是谐振波长的0.2-0.4倍&#xff08;等效介电常数εr算进去的话还要除以√εr的平方根&#xff09;&#xff0c;用的FR-4基板ε_r4.4、tanδ0.025、厚度1mm&#xff0…...

不用命令行!Win11任务栏图标消失的图形化解决方案(Explorer重启神器推荐)

Win11任务栏图标消失&#xff1f;5种可视化修复方案与深度解析 每次切换虚拟桌面后&#xff0c;Win11任务栏图标集体"失踪"的毛病&#xff0c;堪称微软系统最顽固的"幽灵故障"之一。作为从Windows 95时代就存在的资源管理器痼疾&#xff0c;这个问题在Win1…...

陀螺匠企业助手-产品

1. 功能说明维护出售产品的基本信息数据&#xff0c;支持在添加商机/合同中进行选择。2. 进入产品页面路径&#xff1a;客户>产品管理>产品3. 新增产品功能说明&#xff1a;维护产品信息&#xff0c;添加完成的产品信息&#xff0c;可以在添加商机/合同中进行选择。新增产…...

Monocle 3实战:5步搞定单细胞marker基因筛选与可视化(R语言版)

Monocle 3实战&#xff1a;5步搞定单细胞marker基因筛选与可视化&#xff08;R语言版&#xff09; 单细胞RNA测序技术正在重塑我们对复杂生物系统的理解。在这个数据爆炸的时代&#xff0c;如何从海量的单细胞数据中快速准确地识别关键marker基因&#xff0c;成为每个研究者必须…...