jdk 1.7系列 文件 I/O 的基石 :Path
Posted gudongcheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdk 1.7系列 文件 I/O 的基石 :Path相关的知识,希望对你有一定的参考价值。
在NIO.2的文件 I/O 中,Path是必须掌握的关键类之一。Path通常代表文件系统中的位置,比如 C:WindowsSystem32
什么是根目录、绝对路径和相对路径
比如说,代码要读取位于 /java7dev/src/main/Demo.java目录下的文件名。
- 根路径为 /java7dev
- 绝对路径为 /java7dev/src/main/
- 进入到 绝对路径下 可使用相对路径 ../main
备注:这里简略概括,想深入了解可访问 https://www.cnblogs.com/crizygo/p/5369081.html
文件 I/O 的关键基础类
类 | 说明 |
Path | Path类中的方法可以用来获取路径信息,访问该路径中的各元素,将路径转换为其他形式,或提取路径中的一部分。有的方法还可以匹配路径字串以及移除路径中的冗余项 |
Paths | 工具类,提供返回路径的辅助方法,比如get(String first, String ... more) 和 get(URI url) |
FileSystem | 与文件系统交互的类,无论是默认的文件系统,还是通过其同意资源标识(URI) 获取的可选文件系统 |
FileSystems | 工具类,提供各种方法,比如其中用于返回默认文件系统的FileSystems.getDefault() |
备注:Path不一定代表真实的文件或者目录。可随心所欲地操作Path,用Files中的功能来检查文件是否存在,并对它进行处理。
Path的基本用法
package com.gudongcheng.jdk7.nio; import java.io.File; import java.nio.file.Path; import java.nio.file.Paths; /** * @author lizuoyang * @date 2018/10/30 * @desc Path类的用法 */ public class PathDemo { public static void main(String[] args) { //创建绝对路径 Path demo = Paths.get("/usr/bin/zip"); //获取文件名 System.out.println("File Name :" + demo.getFileName()); //获取名称元素的数量 System.out.println("Number of Name Elements:" + demo.getNameCount()); //获取root路径(顶层) System.out.println("Root of Path:" + demo.getRoot()); //获取0-2位子路径 System.out.println("Subpath from Root, 2 elements deep:" + demo.subpath(0, 2)); //去除冗余路径 获取文件的真正位置 Path normalizedPath = Paths.get("./PathDemo.java").normalize(); System.out.println("Path normalizedPath:" + normalizedPath); //合并两个Path 通过resolve() Path prefix = Paths.get("/uat"); Path completePath = prefix.resolve("conf/application.properties"); System.out.println("Path resolve :" + completePath.toAbsolutePath()); //File类和Path类的相互转换 File file = new File("../demo.java"); //File to Path Path file2Path = file.toPath(); System.out.println("File to Path:" + file2Path.toAbsolutePath()); //Path to File File path2File = file2Path.toFile(); System.out.println("Path to File:" + path2File.getPath()); } }
以上是关于jdk 1.7系列 文件 I/O 的基石 :Path的主要内容,如果未能解决你的问题,请参考以下文章