gpt4 book ai didi

java - filesystem.getPath() 返回错误的路径

转载 作者:行者123 更新时间:2023-12-02 06:44:49 32 4
gpt4 key购买 nike

这个问题快把我逼疯了。我想在 src/main/resources 文件夹中访问一个文件,我试图通过以下方式获取路径:

FileSystem fileSystem = FileSystems.getDefault();
Path path = fileSystem.getPath(AnalysisEngine.class.getResource("/models/10_NB_7dev_2.model").getFile());

但是,我不断收到以下错误:

索引 2 处的非法字符 <:>:/C:/Users/...(路径位于此处)/models/10_NB_7dev_2.model

如您所见,返回的路径在 C: 之前有“/”,这破坏了一切。原因是什么?如何解决? java.io 包有替代方案吗?

我正在使用 Windows 8 - 64 位操作系统,如果有帮助的话。

最佳答案

Class#getResource(String) 返回的 URL 包含前面的 /

/C:/Users/...(the path is here)/models/10_NB_7dev_2.model

That's just how URLs work.然后,FileSystem 尝试解析该字符,但混合中存在 : 字符对它来说毫无意义,因此它会引发异常。换句话说,getPath() 试图创建一个路径,而不是一个 url。 Windows(也可能是 Linux)路径中不能有 : 字符,除非它直接跟在驱动器名称后面作为路径字符串的前两个字符。

这里的解决方案是不使用类路径资源的路径。类路径资源可能不是直接来自文件系统,它可能位于 jar 内。

关于java - filesystem.getPath() 返回错误的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18768418/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com