Java项目中的相对路径读取文件?java.io.File找不到指定的路径
我有一个包含2个软件包的项目:
- tkorg.idrs.core.searchengines
- tkorg.idrs.core.searchengines
在包(2)中,我有一个文本文件ListStopWords.txt
;在包(1)中,我有一个类FileLoadder
。这是代码FileLoader
:
File file = new File("properties\\files\\ListStopWords.txt");
但是有这个错误:
The system cannot find the path specified
你能给出解决方案吗?谢谢。
回答:
如果它已经在类路径中,则只需从类路径而不是磁盘文件系统中获取它即可。不要在中摆弄相对路径java.io.File
。它们取决于当前的工作目录,你完全无法从Java代码内部对其进行控制。
假设ListStopWords.txt
与你的FileLoader
课程位于同一包中,请执行以下操作:
URL url = getClass().getResource("ListStopWords.txt");File file = new File(url.getPath());
或者,如果你最终想要得到InputStream
的只是其中之一:
InputStream input = getClass().getResourceAsStream("ListStopWords.txt");
这肯定比创建a
优先,new File()
因为url
可能不一定代表磁盘文件系统路径,但也可能代表虚拟文件系统路径(当JAR扩展到内存而不是磁盘文件系统上的temp
文件夹时,可能会发生)甚至网络路径,根据定义,这两个路径都不能由File
构造函数消化。
如果该文件是-包名称所暗示的- 实际上是一个完全有价值的属性文件(包含key=value
行),且扩展名仅是“错误”,则可以InputStream
立即将其提供给该load()
方法。
Properties properties = new Properties();properties.load(getClass().getResourceAsStream("ListStopWords.txt"));
注意:当你尝试从内部static
上下文中访问它时,请使用FileLoader.class
(或其他方法YourClass.class
)代替getClass()
上面的示例。
以上是 Java项目中的相对路径读取文件?java.io.File找不到指定的路径 的全部内容, 来源链接: utcz.com/qa/432184.html