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 listDirs(String path) throws IOException {

Path dirPath = Paths.get(path);

if (Files.isDirectory(dirPath)) {

Comparator 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 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 comparing = (o1, o2) -> Collator.getInstance(Locale.CHINESE).compare(o1.getName(), o2.getName());

Stream 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 发布!

java paths_文件路径的描述与操作 Path Paths相关推荐

  1. Java获取文件路径

    Java获取文件路径 1.获取当前文件所在的包名 2.获取工程文件夹所在的绝对路径 3.获取当前class文件所在的绝对路径 1.获取当前文件所在的包名 类名.class.getPackage().g ...

  2. java 通过文件路径获得MulipartFile类型文件 - File转MulipartFile

    java 通过文件路径获得MulipartFile类型文件 - File转MulipartFile 方式一:使用MockMultipartFile函数 方式二:数据流实现 思路:路径创建出File文件 ...

  3. java读取文件 路径_Java中的获取文件的物理绝对路径,和读取文件

    获取文件的绝对路径,读取该文件 一.文件目录打印图 下面的文件目录图,是项目中文件的位置信息:下面的例子是按照这个图来演示的. . |-- java | |-- ibard | | |-- demo1 ...

  4. python合并路径和文件名,python关于文件路径和文件名的操作

    os.path.abspath(path) #返回绝对路径(包含文件名的全路径) os.path.basename(path) -- 去掉目录路径获取文件名 os.path.dirname(path) ...

  5. java读取文件路径中文,分分钟搞定!

    一.对象的实例化 1.创建对象的方式 new:最常见的方式(本质是构造器) 变形1 : Xxx的静态方法 变形2 : XxBuilder/XxoxFactory的静态方法 Class的newInsta ...

  6. java处理文件路径windows与linux兼容问题

    window和linux分隔符其实就是\和/的区别,其实让文件路径根据服务器的系统的不同而不同就可以了,而java已经给我们提供方法了 System.getProperty("file.se ...

  7. Java 获取文件路径

    MyClass.class.getResource("/") 说明 : 获取当前类所在的classes根目录 FileUtil.class.getResource("/& ...

  8. java src 文件路径_java获取src下文件路径和获取webRoot下文件路径

    获取src下的fileurl.properties文件路径 this.getClass().getResource("/fileurl.properties").getPath() ...

  9. java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...

    如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径 我有一个包含2个包的项目: ListStopWords.txt ListStopWords.txt 在包(2)中我有 ...

最新文章

  1. ntbackup 创建卷影复制:ffffffff 时出现错误
  2. java:final,finally,finalize区别
  3. 使用静态库分享共同的模块
  4. Ubuntu中配置FTP服务
  5. 盘点那些有“数学味”的建筑
  6. 基于line2d算法的模板匹配
  7. java过滤空号了停机号_手机号码空号检测
  8. Unity学习笔记--无限地图(地图拼接)
  9. 【物理学术竞赛】——绳上的球(再续)
  10. 打游戏的利器来了!配置再也不是限制我吃鸡的理由!
  11. Python每日一记192计算机组成原理之存储器存取周期、存储器带宽
  12. bind server.c
  13. 翻译Deep Learning and the Game of Go(3)第2章:围棋是一个机器学习难题(规则部分就不翻了)
  14. matlab 隐写分析,RS隐写分析.ppt
  15. java宅急送下载_pom.xml · blucywei/java宅急送物流管理项目 - Gitee.com
  16. 手机号验证正则表达式
  17. 连载:中国最早的一代官派留学生--留美幼童 (11)
  18. error C4996: ‘GetVersionExW‘: 被声明为已否决
  19. 【.net】Ueditor中图片上传和图片回显路径的设置
  20. iOS使用Object-C自定义cordova插件(-)

热门文章

  1. Knife4j官网(内含源代码)
  2. Linux 运维必备的 40 个命令总结,收好了~
  3. Xshell 7 功能强大,免费享用,再也不用找破解版了
  4. 【burpsuite安全练兵场-服务端9】服务端请求伪造SSRF漏洞-7个实验(全)
  5. error MSB8041: 此项目需要 MFC 库
  6. 解决 VS 出现错误 MSB3644 找不到 .NETFramework,Version=v4.6.1 的引用程序集。要解决此问题,请为此框架版本安装......
  7. 设置笔记本内网和外网同时使用
  8. Windows无法启动安装过程
  9. web系统ie浏览器不刷新数据
  10. 手写Vue3.0响应式