首页 > 解决方案 > 如何理解 java Path.toString() 方法

问题描述

我的代码:

Path uploadPath = Paths.get("D:\\0.hzg\\");
System.out.println(uploadPath);

输出:

D:\0.hzg

如何理解这里的toString()方法的设计Path

我认为它应该输出D:\0.hzg\,因为0.hzg它是路径而不是文件。


更新:</p>

        System.out.println(Paths.get("-","A", "B")); 
        System.out.println(Paths.get("/","A", "B")); 
        System.out.println(Paths.get("\\","A", "B"));

输出:</p>

-\A\B
\\A\B\
\\A\B\

标签: javajava-io

解决方案


[路径] 获取方法仅通过注意系统文件分隔符来创建路径,这将有助于跨平台执行程序,例如

System.out.println(Paths.get(File.separator,"A", "B"));

将返回

在 Windows 上:\\A\B\

在 Unix 上:/A/B/

File.separator的详细信息 是

系统相关的默认名称分隔符。该字段被初始化为包含系统属性文件值的第一个字符。分隔符。在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它是 '\'。

具体到问的问题

我相信这是因为绝对路径,
例如在 windows JDK 1.7

System.out.println(Paths.get("C:","A", "B")); **Output** : C:\A\B
System.out.println(Paths.get("C:","A", "0.hzg")); **Output** : C:\A\0.hzg


System.out.println(Paths.get(File.separator,"A", "B")); **Output** : \\A\B\
System.out.println(Paths.get(File.separator,"A", "0.hzg")); **Output** : \\A\0.hzg\

希望有帮助


推荐阅读