我在包中存储了非java文件。我想从这个包中读取文件而不指定文件的绝对路径(例如C:\ etc \ etc ...)。我该怎么做?
答案 0 :(得分:18)
例如:
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。