java - 无法在 Java 中查找和读取文件

标签 java eclipse

我对 Java 完全陌生,而且我是 使用别人的代码读取二进制文件 但该文件将无法打开。我在 Windows 10 下的 Eclipse 中运行代码 该文件名为 书DeepDist.dat 我已经把它放在项目文件夹中了。我也尝试过(没有成功)的完整路径名是 C:\Users\Alan\eclipse-workspace\readDatabase\bookDeepDist.dat

失败的代码是:

public void openBook() throws IOException {

    file = getClass().getResourceAsStream(BOOKPATH[bookNr]);
    if (file == null)
        throw (new IOException("Could not open File "+BOOKPATH[bookNr]));
}

错误信息是: 无法打开文件 bookDeepDist.dat

所以它似乎正在尝试打开正确的文件。 谁能告诉我可能出了什么问题吗?

最佳答案

问题是,getResourceAsStream() 在正在运行的 Java 程序的类路径中查找。这就是当您将文件放入项目文件夹时它起作用的原因。您想要的是程序类路径之外的文件流。

而不是

file = getClass().getResourceAsStream(BOOKPATH[bookNr]);

尝试使用

file = new FileInputStream(BOOKPATH[bookNr]);

关于java - 无法在 Java 中查找和读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60065599/

相关文章:

java - 使用 Java 邮件 Pop3 似乎无法从 Gmail 中删除电子邮件

java - Bazel-Java 测试运行是否支持持久工作人员?

java - Spring @Transaction 未启动事务

eclipse - 使 Gradle 不使用源集目录作为 Eclipse 源文件夹

java - Android 2.3 中使用 ActionBar 和支持库 v7 强制关闭

java - 如何将字符串拆分为二维数组并根据行访问每个分组?

java - 替代 Jackson @JsonSubTypes

eclipse - 禁止在 Eclipse 工作区中构建一个项目

java - 如何使用 Eclipse JDT ASTParser 获取方法的类名?

eclipse - 我可以访问 127.0.0.1,但不能访问 http ://localhost:8080