我正在为我的一个类实现分支预测器,并且我正在尝试从 Eclipse 中的 src 文件夹中读取文件,但由于某种原因它无法打开这些文件。我之前已经使用完全相同的过程完成了此操作,所以我不确定有什么不同。
traceFile 是从命令行设置的,如果我打印“输入”,它将打印出正确的文件路径,并且我已手动确认它存在。
ClassLoader loader = BiModalPredictor.class.getClassLoader();
File input = new File(loader.getResource(traceFile).getFile());
Scanner fin = new Scanner(input);
是否有任何关于为什么会发生这种情况的见解?我尝试过重新启动 Eclipse、刷新文件,并且还在另一个有效的程序上进行了测试。不知道为什么找不到这个文件。
最佳答案
类路径上的资源,即通过类加载器可用 getResource
方法,当您的应用程序部署为 jar 文件或一般部署时,不会是文件系统上的文件。不要将 File
与此类资源一起使用,而是使用 getResourceAsStream
访问资源内容。
此外,您的代码是错误的。 getResource()
返回 URL
。如果您想要来自 URL
的 File
对象,则应该使用 new File(uri)
,其中URI
通过调用url.toURI()
获得.
File input = new File(loader.getResource(traceFile).toURI());
关于java - Eclipse 无法读取 src 文件夹中的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60941687/