zoukankan      html  css  js  c++  java
  • 十五、Java NIO Path

    所有文章

    https://www.cnblogs.com/lay2017/p/12901123.html

    正文

    Path是从Java 7开始加入NIO软件包的。它可以表示一个文件,也可以表示一个路径。可以是绝对路径,也可以是相对路径。

    你可能会觉得Path和常见的File很相似,大多数场景下File和Path可以相互替换,但是还是存在一些细微的不同点。以下是关于Path的一些用法

    创建Path

    public class PathExample {
    
        public static void main(String[] args) {
            Path path = Paths.get("c:\data\myfile.txt");
        }
    }

    Path的创建通过Paths的get方法

    创建绝对路径

    windows系统下

    Path path = Paths.get("c:\data\myfile.txt");

    unix系统下

    Path path = Paths.get("/home/jakobjenkov/myfile.txt");

    如果是windows系统下使用了

    /home/jakobjenkov/myfile.txt

    会被解释为

    C:/home/jakobjenkov/myfile.txt

    创建相对路径

    创建相对路径使用

    Paths.get(basePath, relativePath)

    示例代码

    Path projects = Paths.get("d:\data", "projects");
    
    Path file     = Paths.get("d:\data", "projects\a-project\myfile.txt");

    projects是:d:\data\projects

    file是:d:\data\projects\a-project\myfile.txt

    相对路径还有两个操作符辅助

    . :表示当前目录

    .. :表示上级目录

    路径中存在 . 符号,表示当前目录

    Path currentDir = Paths.get("d:\data\projects.a-project");

    路径

    d:dataprojectsa-project

    如果是 .. 符号,表示上级目录

    String path = "d:\data\projects\a-project\..\another-project";
    Path parentDir2 = Paths.get(path);

    路径

    d:dataprojectsanother-project

    同样的还可以这样写

    Path path1 = Paths.get("d:\data\projects", ".\a-project");
    
    Path path2 = Paths.get("d:\data\projects\a-project",
                           "..\another-project");

    Path.normalize()方法

    以下是normalize方法示例

    String originalPath = "d:\data\projects\a-project\..\another-project";
    
    Path path1 = Paths.get(originalPath);
    System.out.println("path1 = " + path1);
    
    Path path2 = path1.normalize();
    System.out.println("path2 = " + path2);

    打印结果

    path1 = d:dataprojectsa-project..another-project
    path2 = d:dataprojectsanother-project

    可以看到,normalize不包含如:.. 这样的符号

  • 相关阅读:
    Java并发
    JS的强制类型转换
    JS的原生函数
    JS的类型和值
    解决Oracle临时表空间占满的问题
    nginx location匹配规则
    java.util.ConcurrentModificationException 解决办法
    SQL优化三板斧:精简之道、驱动为王、集合为本
    一次非典型SQL优化:如何通过业务逻辑优化另辟蹊径?
    一次耐人寻味的SQL优化:除了SQL改写,还要考虑什么?
  • 原文地址:https://www.cnblogs.com/lay2017/p/12916968.html
Copyright © 2011-2022 走看看