文件路径的描述与操作 Path & Paths

第一章Netty,Path和Paths类 摘要: Java NIO.2 中的 Path(接口)和 Paths(工具类)是替代传统 File 的现代化路径处理方案。Path 表示不可变文件路径,需结合 Files 或 FileChannel 操作;Paths.get()(Java 7-10)或 Path.of()(Java 11+)用于创建实例。支持路径解析、规范化及跨平台分隔符处理,常用于 FileChannel.open() 等场景,提供类型安全、线程安全及符号链接等高级功能。推荐弃用 java.io.File,优先使用 Path 结合 NIO. 阅读详情

img

1、文件路径字符串转 Patsh 对象

Path filePath = Paths.get("/Users/Anoyi/aaa.txt");

另一种写法:

Path filePath = Paths.get("/Users", "Anoyi", "aaa.txt");

2、 Path 对象常用操作

# 获取文件名 aaa.txt
filePath.getFileName()

# 获取父路径 /Users/Anoyi
filePath.getParent()

# 获取文件层级数量 3
filePath.getNameCount()

# 获取指定层级文件(夹)名 Anoyi
filePath.getName(1)

# 获取同级目录其他文件(夹) /Users/Anoyi/bbb.txt
filePath.resolveSibling("bbb.txt")

# 获取同级目录其他文件(夹) /Users/Anoyi/zzz/bbb.txt
filePath.resolveSibling("zzz/bbb.txt")

# 获取子级目录其他文件(夹) /Users/Anoyi/aaa.txt/bbb.txt
filePath.resolve("bbb.txt")

# 获取绝对路径 /Users/Anoyi/aaa.txt ,如果是 Paths.get("Users/Anoyi/aaa.txt"),则绝对路径为:项目绝对路径   "/Users/Anoyi/aaa.txt"
filePath.toAbsolutePath()

# 转化为文件
filePath.toFile()

文件操作 Path & Files

基本操作

Path dirPath = Paths.get("/Users/Anoyi");

# 校验文件(夹)存在
Files.exists(dirPath)

# 校验文件(夹)不存在
Files.notExists(dirPath)

# 校验是否为文件夹
Files.isDirectory(dirPath)

# 校验是否为文件 /Users/Anoyi/aaa.txt
Files.isRegularFile(dirPath.resolve("aaa.txt"))

# 创建文件 /Users/Anoyi/bbb.txt
Files.createFile(dirPath.resolve("bbb.txt"))

# 创建文件夹 /Users/Anoyi/xxx
Files.createDirectory(dirPath.resolve("xxx"))

# 创建多级文件夹 /Users/Anoyi/yyy/zzz
Files.createDirectory(dirPath.resolve("yyy/zzz"))

# 文件(夹) 删除
Files.delete(dirPath)
Files.deleteIfExists(dirPath)

# 文件(夹)复制 /Users/Anoyi/aaa.txt == /Users/Anoyi/ccc.txt
Files.copy(dirPath.resolve("aaa.txt"), dirPath.resolve("ccc.txt"))

# 文件(夹)移动 /Users/Anoyi/aaa.txt => /Users/other/aaa.txt
Files.move(dirPath.resolve("aaa.txt"), Paths.get("/Users/other/aaa.txt"), StandardCopyOption.REPLACE_EXISTING)

文件读写

Path filePath = Paths.get("/Users/Anoyi/aaa.txt");

# 读所有行文本,默认使用 UTF-8
Files.readAllLines(filePath, Charset.defaultCharset())

# 读字节数组
Files.readAllBytes(filePath)

# 写文本
Files.write(filePath, Arrays.asList("line1", "line2"))

# 写字节数组
Files.write(filePath, new byte[]{})

# 更灵活的写入数据
Files.newBufferedWriter(filePath).write(...)

# 获取 InputStream
Files.newInputStream(filePath)

# 获取 OutputStream
Files.newOutputStream(filePath)

文件列表与查找

Path dirPath = Paths.get("/Users/Anoyi");

# 文件列表
Files.list(dirPath)

# 文件查找,查找路径深度 5
Files.find(dirPath, 5, <条件>)

常用场景

1、文件列表,中文排序

    /**
     * 文件(夹)列表
     *
     * @param path 路径
     */
    public List<File> listDirs(String path) throws IOException {
        Path dirPath = Paths.get(path);
        if (Files.isDirectory(dirPath)) {
            Comparator<BaseFileBean> comparing = (o1, o2) -> Collator.getInstance(Locale.CHINESE).compare(o1.getName(), o2.getName());
            return Files.list(Paths.get(path)).map(Path::toFile).sorted(comparing).collect(Collectors.toList());
        }
        return new ArrayList<>();
    }

2、文件查找,忽略英文大小写

    /**
     * 查找文件(夹)
     */
    public List<BaseFileBean> findFiles(String folder, String keyword) throws IOException {
        final int MAX_DEPTH = 5;
        File dir = new File(folder);
        if (dir.exists() && dir.isDirectory()) {
            final String lowerKeyword = keyword.toLowerCase();
            Comparator<BaseFileBean> comparing = (o1, o2) -> Collator.getInstance(Locale.CHINESE).compare(o1.getName(), o2.getName());
            Stream<Path> stream = Files.find(Paths.get(folder), MAX_DEPTH, (path, basicFileAttributes) -> path.getFileName().toString().toLowerCase().contains(lowerKeyword));
            return stream.map(Path::toFile).sorted(comparing).collect(Collectors.toList());
        }
        return new ArrayList<>();
    }

本文由博客一文多发平台 OpenWrite 发布!

DC/DC开关电源学习笔记(一)开关电源技术概述 开关模式电源(Switch Mode Power Supply,简称SMPS),又称交换式电源、开关变换器,是一种高频化电能转换装置,是电源供应器的一种。其功能是将一个位准的电压,透过不同形式的架构转换为用户端所需求的电压或电流。开关电源的输入多半是交流电源(例如市电)或是直流电源,而输出多半是需要直流电源的设备,例如个人电脑,而开关电源就进行两者之间电压及电流的转换。【百度百科】 阅读详情

相关推荐

如何构建智能聊天系统

聊天分为听、思考、读,简单的通过ASR、LLM、TTS三类模型的组合可以实现,最近openai推出支持多模态的GPT-4o模型,可以把三个模型真正融合成在一起。现在市面上的模型百花齐放,各有所长。要实现可落地的方案,需要结合业务,验证模型效果,同时也要考虑方案的可行性,有些模型在国内能用,有些在国内不能用。

xsgnzb的专栏 2107

【Paths.get 相对路径的使用】

【代码】【Paths.get 相对路径的使用】

qq_45400200的博客 3063

VECTOR硬件VN1600系列对比:VN1610、VN1611、VN1630A、VN1640A、VN1630log、VN1670

VN16系列说不清道不明的区别和关系

AmorRun的博客 2万+

Java8中关于Paths、Path等工具类的简单使用

Paths import java.nio.file.Path; import java.nio.file.Paths; public class PathsUtils { /** * Paths */ public static void main(String[] args) { String filePath = "E:\\temp优快云\\Paths"; /...

waitingandhope的博客 2600

CSR-DCF视频目标跟踪源码运行笔记

论文基本信息 论文标题:Discriminative Correlation Filter with Channel and Spatial Reliability 论文作者:Alan Lukezic等 论文出处:CVPR 2017 文章链接:https://arxiv.org/abs/1611.08461 补充材料:https://www.semanticscholar.org/paper/D...

越野者的博客 3397

黑猫带你学eMMC协议第12篇:生产状态感知(PSA)

1 概述 1.1 什么是PSA Production State Awareness (PSA) 生产状态感知 e•MMC设备可以利用其是否在生产环境中的信息,从而在现场运作时进行不同的操作。 例如,在设备低温焊接(soldering)前,将数据写入emmc,可能导致数据出错,而正在焊接期间写入数据,出错的概率可能会更大。在低温焊接之前,emmc设备可以使用一种特定的内部操作去加载内容,这样就能减少数据出错的概率,而在低温焊接后进行常规的操作就行了。 1.2 psa如何进行工作? PSA存在于emmc5.0

黑猫奥利奥的博客 4258

java paths.get()在windows中怎么用相对路径

可能是我菜吧,找了一堆资料试的时候各种失败,所以记录一下。 如果文件(假如这个文件是b.txt)在Coming_test文件中, Path p1= Paths.get(&quot;b.txt&quot;); 在src文件中, Path p1= Paths.get(&quot;src&quot;,&quot;b.txt&quot;); 在test_1文件中 Path p1= Paths.get(&quot;src&quot;,&quot;test_1&quot;,&quot;b.txt&quo

kayyakkay的博客 1万+

AI编码规则:从提示工程到自动化,提升大模型生成代码质量

在软件工程领域,代码质量是保障软件可维护性、安全性和团队协作效率的核心。其背后遵循着从基础语法规范到架构设计原则的一系列工程实践。随着大语言模型(LLM)在代码生成任务中的广泛应用,如何确保AI生成的代码符合这些工程标准,成为一个关键的技术挑战。这涉及到将人类工程师积累的最佳实践,转化为机器可理解、可执行的明确约束。通过系统化的**编码规则**定义与集成,例如构建涵盖安全、风格、架构的多层次规则集,并将其融入**提示工程**或自动化工作流,可以显著引导AI产出更健壮、规范的代码。这种方法的价值在于,它能将模

weixin_42525189的博客 641

【Java用法】Paths.get()方法的使用

Paths.get()方法的使用

No8g攻城狮的博客 1万+

安装openclaw时出现node.exe : npm error code EIDLETIMEOUT的解决方案

本文主要介绍了安装openclaw时出现node.exe : npm error code EIDLETIMEOUT的解决方案,希望能对学习使用openclaw的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

专为AI打造的浏览器:内存占用仅为Chrome的1/9、比Chrome快11倍(Docker部署教程,支持飞牛nas等服务器部署)

🚀 专为AI打造的无头浏览器来了! 用Zig从零构建,内存仅Chrome的1/9,速度快11倍,原生CDP协议支持Docker部署,适合爬虫、自动化测试和AI代理应用。✨

XiaoqiangClub的博客 730

【3.1】Path 与 Paths 类

文章目录 一、引言 二、Path① 创建Path实例② 创建绝对路径Path③ 创建相对路径Path④ . 与 . .. 表示当前路径. . 表示父类目录⑤ 使用Path.normalize()标准化路径 Last Article 一、引言 JDK 7 对 NIO增强了对文件处理和文件系统特性的支持,因为 NIO 提供的一些功能,NIO已经成为文件处理中越来越重 要的部分。 二、Path ...

无敌兔0x01 7713

爬取Unsplash高清壁纸:Python爬虫实战教程(最新技术)

在当今数字化时代,高清壁纸已经成为人们个性化设备的重要元素。Unsplash作为全球最知名的免费高质量图片网站,汇集了数百万张由全球摄影师贡献的高清图片。然而,Unsplash官网的下载方式需要手动操作,对于需要批量下载壁纸的用户来说效率较低。本文将带你深入探索如何使用Python爬虫技术高效爬取Unsplash高清壁纸,从基础到进阶,全面掌握图片爬取的核心技术。Unsplash成立于2013年,是一个完全免费的图片分享平台。高质量内容:所有图片均由专业摄影师上传,分辨率普遍达到4K以上免费商用。

2201_76125261的博客 935

java paths_文件路径的描述与操作 Path & Paths

1、文件路径字符串转 Patsh 对象Path filePath = Paths.get("/Users/Anoyi/aaa.txt");另一种写法:Path filePath = Paths.get("/Users", "Anoyi", "aaa.txt");2、 Path 对象常用操作# 获取文件名 aaa.txtfilePath.getFileName()# 获取父路径 /Users/Ano...

weixin_29568911的博客 1754

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Java NIO文件路径管理:Path类和Paths类

    本文章主要包括如下几个章节:类介绍、Path实例获取和文件路径管理。文件路径管理中,主要介绍了Path中定义的主要方法。 1、类的介绍     Path接口 是JDK1.7中定义的接口,主要用来在文件系统中定位文件,通常表示系统相关的文件路径。JDK中的介绍:An object that may be used to locate a file in a file system. It...

weixin_38569499的博客 2万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java —— Path、Paths、Files

Path public interface Path extends Comparable&lt;Path&gt;, Iterable&lt;Path&gt;, Watchable 可用于在文件系统中定位文件的对象。 它通常表示系统相关的文件路径。 Path表示一个分层的路径,由一个特殊分隔符或分隔符分隔的目录和文件名元素序列组成。 也可以存在标识文件系统层次结构的根组件 。 距离目录层次...

Hern(宋兆恒) 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java 输入与输出之 NIO.2【AIO】【Path、Paths、Files】【walkFileTree】探索之【三】

详细介绍了Java NIO.2 中Path 、Paths和 Files等两个核心类,演示了使用Path和Files一起访问文件系统,对文件和目录进行管理和操作。详细介绍了Files.newDirectoryStream方法和Files.walkFileTree方法对目录进行遍历操作。

weixin_42369079的博客 1960

Path、Paths、Files的使用

Path接口的名字非常恰当,就是表示路径的,API中讲Path对象可以是一个文件,一个目录,或是一个符号链接,也可以是一个根目录。创建Path并不会创建物理文件或是目录,path实例经常引用并不存在的物理对象,要真正创建文件或是目录,需要用到Files类。Files类是一个非常强大的类,它提供了处理文件和目录以及读取文件和写入文件的静态方法。Files还拥有创建流对象的方法。Path就是取代File的,用于来表示文件路径和文件。它的delete方法经常莫名其妙的失败等,旧的File类经常是程序失败的根源。

Code Writers 1452

java中Path和Paths,以及Paths.get(),Path.of()方法

这是 Java NIO 文件操作中非常关键的基础概念,下面我将给你。

Running_boy_的博客 1030

NIO —— Path、Paths、Files

Path 与 Paths java.nio.file.Path 接口代表一个平台无关的平台路径,描述了目录结构中文件的位置。 Paths 提供的 get() 方法用来获取 Path 对象: Path get(String first, String … more) : 用于将多个字符串串连成路径。 Path 常用方法: boolean endsWith(String path) : 判断...

初学者 524

java file.readalllines_转Java 文件处理 Paths & Files

文件路径的描述与操作 Path &amp; Paths1、文件路径字符串转 Patsh 对象Path filePath = Paths.get("/Users/Anoyi/aaa.txt");另一种写法:Path filePath = Paths.get("/Users", "Anoyi", "aaa.txt");2、 Path 对象常用操作# 获取文件名 aaa.txtfilePath.getF...

weixin_42628846的博客 564

Java 文件处理 Paths & Files

点击上方☝SpringForAll社区轻松关注!及时获取有趣有料的技术文章文件路径的描述与操作 Path &amp; Paths1、文件路径字符串转Patsh对象1Pathfil...

码农小胖哥 1675

NIO.2中Path、 Paths、Files类的使用

NIO.2中Path、Paths、Files类的使用 1.NIO概述 2.NIO. 2 3.Path 接口 4.Files 类 package com.atguigu.java; import org.junit.Test; import java.io.File; import java.nio.file.Path; import java.nio.file.Paths; /** * 1. jdk 7.0 时,引入了 Path、Paths、Files三个类。 * 2.此三个类声明在

xiaotai1234的博客 836

java paths_Java 文件处理 Paths & Files

文件路径的描述与操作 Path &amp; Paths1、文件路径字符串转 Patsh 对象Path filePath = Paths.get("/Users/Anoyi/aaa.txt");另一种写法:Path filePath = Paths.get("/Users", "Anoyi", "aaa.txt");2、 Path 对象常用操作# 获取文件名 aaa.txtfilePath.getF...

weixin_36448083的博客 394

java-File、Path、Paths和Files类

java-File、Path、Paths和Files类

梅长苏的博客 1264

【Java编程秘籍】轻松掌握文件操作,Path、Paths、Files不再头疼!

你是否曾在Java编程中遇到文件操作的困扰?面对Path、Paths、Files这些概念,是否感到一头雾水?别担心,今天我们就来一起揭开它们的神秘面纱,让你轻松掌握Java文件操作的技巧!

Q2024107的博客 250
上一篇: SpringBoot静态视频实时播放
下一篇: Spring boot使用spring retry重试机制
SpringForAll
博客等级 码龄7年 15粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值