当前位置: 代码迷 >> java >> 如何理解Java Path.toString()方法
  详细解决方案

如何理解Java Path.toString()方法

热度:124   发布时间:2023-08-02 11:25:09.0

我的代码:

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

输出:

D:\0.hzg

如何在这里了解PathtoString()方法的设计?

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


更新:

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

输出:

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

[Paths] gets方法仅通过注意system-file-separator来创建路径,这将有助于跨平台执行程序,例如

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

将返回

在Windows上:\\\\ A \\ B \\

在Unix上:/ A / B /

File.separator的详细信息是

取决于系统的默认名称分隔符。 初始化此字段以包含systemproperty 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\

希望能有所帮助

Path不执行任何I/O检查这是目录还是常规文件。 它是一个实用程序类,用于处理文件系统路径的平台依赖的字符串表示形式(您绝对不希望通过/分割字符串或自己查找驱动器号)。 引用javadoc

可用于在文件系统中定位文件的对象。 它通常代表系统相关的文件路径。

另外,不考虑尾随分隔符(请参见例如endsWith方法说明)

请注意,未考虑尾部分隔符,因此在路径“ foo / bar”上使用字符串“ bar /”调用此方法将返回true。

  相关解决方案