java - Eclipse 无法读取 src 文件夹中的文本文件

标签 java java-io

我正在为我的一个类实现分支预测器,并且我正在尝试从 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 。如果您想要来自 URLFile 对象,则应该使用 new File(uri) ,其中URI通过调用url.toURI()获得.

File input = new File(loader.getResource(traceFile).toURI());

关于java - Eclipse 无法读取 src 文件夹中的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60941687/

相关文章:

java - 读取文本文件并将内容添加到 ArrayList

java - 使用 Java 中的 Files API 复制目录及其中的所有内容

java - 如何使用 json 通过 REST API 更新 Jira 中的描述

java - SequenceInputStream 构造函数仅选择第一个输入流并忽略其余部分

java - Java中的力导向布局实现

java - Android:方向更改动画

java - MediaPlayer 无内容提供程序错误 : W/MediaPlayer: Couldn't open https://youtu. be/oEgpGv2CF1U : java. io.FileNotFoundException:无内容提供程序:

java - Java Files.walk遇到异常错误后能否继续执行

java - 必须从 UI 线程 (Android Studio) 调用方法 getText()

java - 如何根据类中有多少个对象来迭代对象来确定其变量内容?