每当Path.get("")。getNameCount()返回1时,为什么控制台输出与Path.getNameCount有点不一致是没有意义的,其中我希望它为0,当我使用Path.get(" C:\")。getNameCount()返回0 - >这个按预期工作。我读了javadoc,没有太多关于发生了什么的直观信息所以我不得不问这个需要在java se中修复的东西?或者我错过了什么?
来自java doc:
int getNameCount() 返回路径中名称元素的数量。 返回: 路径中元素的数量,如果此路径仅表示根组件,则为0
crawledPages.putIfAbsent(urlToBeCrawled)
控制台输出:
//omitted codes
print(Paths.get(""));
print(Paths.get("C:"));
print(Paths.get("C:\\"));
//omitted codes
public static void print(Path path) {
System.out.println("~~~~~~~ " + path + " ~~~~~~~");
System.out.println("getRoot : " + path.getRoot());
System.out.println("getParent : " + path.getParent());
System.out.println("getFileName : " + path.getFileName());
int nameCount = path.getNameCount();
System.out.println("getNameCount : " + nameCount);
if (nameCount > 1) {
IntStream.range(0,nameCount).forEach(x->{
System.out.println("getName(" + x + ") : " + path.getName(x) + "\t");
});
}
}
//omitted codes
答案 0 :(得分:1)
感谢@Thilo,我意识到Paths.get(“”)等同于默认目录或当前目录,并且按照规范我不会从getNameCount获得0而是1,所以我运行了一些测试
System.out.println("isAbsolute : " + path.isAbsolute());
System.out.println("toAbsolutePath : " + path.toAbsolutePath());
控制台输出:
isAbsolute : false
toAbsolutePath : C:\Users\user\Documents\java\NIO
所以那里,现在是有道理的。毕竟从来就不是一条空路径,但是当然还有绝对路径返回新路径对象并且不等于原始路径(“”)