2

我当前在 eclipse 中的设置是这样的:

主干
--working/src
--resources

我在 working/src 下的包中有一个 java 文件,我正在尝试检索资源中的文件。我使用的路径是“../resources/file.txt”。但是我收到一条错误消息,指出该文件不存在。

任何帮助将不胜感激谢谢!

4

3 回答 3

2

考虑你的结构

我有包裹喜欢

树干

  • 工作/src/FileRead.java
  • 资源/名称 list.txt

以下代码可能会解决您的问题

 package working.src;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;

public class FileRead {
    public FileRead() {
        URL url = getClass().getResource("/resources/name list.txt");
        try {
            BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
            String nameList;
            while ((nameList = in.readLine()) != null) {
                System.out.println(nameList);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        new FileRead();
    }
}
于 2013-01-15T06:51:25.940 回答
0

这取决于您如何在 Eclipse 中指定 Java 构建路径。我已经测试了两种不同结果的设置:

  1. 仅将目录定义working/src为构建路径。您可以通过以下方式获取构建路径中的信息:Select project > Properties > Java Build Path > Tab Source. 列出了所有源文件夹。您会在那里看到定义了一个默认输出文件夹。构建路径中包含的所有资源都将复制到默认输出文件夹,然后可供那里的 eclipse 类使用。如果资源被复制到那里,您可以在 bin 文件夹的资源透视图中检查。在此设置中,仅生成类,不复制资源(因此未找到)。
  2. 定义目录working/srcresources作为构建路径。然后资源被复制,然后可以通过路径“file.txt”找到

所以 eclipse 包含了一个简单的构建过程,并且对开发人员隐藏了它,但它仍然是一个构建过程。

于 2011-09-09T17:25:32.537 回答
0

文件将相对于您的项目路径进行引用,因此请使用“resources/file.txt”来引用该文件。

但是,如果您希望在将程序导出为 JAR 时可以访问该文件,则路径“resources/file.txt”必须相对于您的 JAR 存在。

于 2011-09-09T17:03:12.897 回答