【问题标题】:Reading a .txt file in a project in Eclipse在 Eclipse 的项目中读取 .txt 文件
【发布时间】:2016-04-01 14:06:13
【问题描述】:

好吧,我知道这个问题已被多次询问,但尽管遵循了这些链接中的所有建议,但我仍然最终得到文件未找到错误。

这些是我已经检查过的链接。

Where do I put the txt file that I want to read in Java?

How to really read text file from classpath in Java

所以请不要让触发器高兴地将其标记为重复。

其中一个链接似乎可以互换使用 ClassPath 和 BuildPath 这个词,它们是同一个东西吗,因为在我的 IDE 中我似乎找不到任何与 ClassPath 相关的东西,它只是 BuildPath。

这是我的目录结构。

调用者类需要文件

好吧,我已经尝试了链接中的几乎所有内容,但仍然无法读取文件。

读取文件的代码在这里

String path = "DataSource/data1.txt";
        String jsonData = null;

        try {

            jsonData = Reader.readFile(path);
        } catch (Exception e) {
            e.printStackTrace();
        }

任何帮助表示赞赏。

【问题讨论】:

  • 那么代码在哪里?
  • 非java文件不属于src/main/java,但属于src/main/resources。另外:“我仍然无法读取文件。” - 你遇到了什么错误?
  • 我收到以下错误java.io.FileNotFoundException: DataSource/data1.txt (No such file or directory)
  • @Sombriks 有正确的答案。在构建 Web 应用程序时,您几乎不应该使用 te java.io.File 类。始终使用流。

标签: java eclipse


【解决方案1】:

试试

字符串路径 = "src/main/java/DataSource/data1.txt";

了解您在 ecipe 中的执行点位于项目根目录。

但是,您可能希望将此类资源打包到您的 jar 中。如果是这样,你需要使用类似的东西:

jsonData = Reader.readFile(Caller.class.getResourceAsStream("DataSource/data1.txt""));

最后,将 .txt 文件移动到“src/main/resources”,因为这是一个很好的做法。

【讨论】:

  • 第一个有效,有没有办法我可以使用第二种方法来消耗字符串而不是输入流。
  • 我的意思是我的读者使用的是字符串参数而不是 inputStream。
  • 您好@Zeus,还有其他选项,例如:docs.oracle.com/javase/7/docs/api/java/nio/file/… 您读取字节,然后用这些字节创建一个新字符串。但是 .jar 文件限制仍然存在。如果在某个时候您的资源被打包,那么只有类路径资源可以帮助您。
【解决方案2】:

术语 ClassPath 与 java 代码编译和执行相关,而术语 BuildPath 与 IDE(即 Eclipse)相关。 IDE 在构建和运行应用程序/程序时自动将添加到 BuildPath 的库添加到 ClassPath。

“调用者类需要文件”,那么你可以通过两种方式提供文件路径

  1. 提供绝对文件路径。
  2. 提供您正在执行的相对路径,但请确保它相对于您运行程序的当前位置。在 IDE 的情况下,相对路径应该来自项目目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 2011-09-26
    • 2015-10-08
    相关资源
    最近更新 更多