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

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

使用getResourceAsStream

例如:

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

如果它与MyClass在同一个包中,将打开file.txt

也:

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

将在com.foo.bar包上打开file.txt

祝你好运! 🙂

首先,确保您的文件所包含的包在您的应用程序的类路径中。虽然您没有指定文件的路径,但您仍然需要获取文件的路径来读取它们。您知道所有文件的名称和包姓名(或名称)? 如果是这样,您可以尝试这样来获取文件的url:

 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。