如何从另一个java包中读取文件(例如txt文件)而不指定绝对路径?

时间:2010-10-08 01:44:24

标签: java

我在包中存储了非java文件。我想从这个包中读取文件而不指定文件的绝对路径(例如C:\ etc \ etc ...)。我该怎么做?

2 个答案:

答案 0 :(得分:18)

使用getResourceAsStream

例如:

MyClass.class.getResourceAsStream("file.txt");

如果它与file.txt

在同一个包中,则会打开MyClass

此外:

MyClass.class.getResourceAsStream("/com/foo/bar/file.txt");

将在包file.txt

上打开com.foo.bar 祝你好运! :)

答案 1 :(得分:1)

首先,确保您的文件所包含的软件包位于应用程序的类路径中。 虽然您没有指定文件的路径,但您仍然必须获取文件的路径才能读取它们。您是否知道所有文件的名称和包名称?如果是这样,您可以尝试这样来获取文件的网址:

public class Test {
    public static void main(String[] args) throws Exception {
        URL f = Test.class.getClassLoader().getResource("resources/Test.txt");
        System.out.println(f);
    }
}

上面的代码在名为“resources”的另一个包中获取文件'Test.txt'的url。