getResourceAsStream方法的相对路径

时间:2013-03-06 20:43:36

标签: java

我有一个通过ant构建的jav aproject。它将类文件写入output / classes / com / ... path。我的一个java类需要从文件中读取输入流,该文件位于输出文件夹上一级的文件夹中。看起来如果将文件复制到outptu / classes下的包文件夹,它似乎工作。但我不想在输出文件夹中找到我的配置文件,因为当我执行ant清理时它将被清除。我希望它找到它在输出文件夹上方,在config文件夹中并加载它。

public static final String CONFIG_FILE="/../../../../../../../Config.txt";

public static ConfigObj getConfigObj() throws IOException {

InputStream i=ConfigLoader.class.getResourceAsStream(CONFIG_FILE);

...

我想知道什么时候我想给raltivepath,它应该是什么相对。我试着抬头,它说相对于类加载器。在这种情况下什么是类加载器?它是我的ConfigLoader.class所在的output / classes / com ...... / config文件夹吗?

1 个答案:

答案 0 :(得分:1)

问题是getResourceAsStream()只会从类路径加载资源。我猜你的类路径上只有output/classes,所以如果它位于该目录之外,你永远无法通过getResourceAsStream()加载配置文件。使用File指向文件的绝对路径,或将其放在类路径中。