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

如何在不指定绝对路径的情况下从另一个java包读取文件(例如txt文件)?,java,Java,我将非java文件存储在一个包中。我想从这个包中读取文件,但不指定文件的绝对路径(例如C:\etc\etc…)。我应该怎么做?使用 例如: MyClass.class.getResourceAsStream("file.txt"); 将打开file.txt,如果它与MyClass 此外: 将在包com.foo.bar 祝你好运!:) 首先,确保包含文件的包位于应用程序的类路径中。。 虽然您没有指定文件的路径,但您仍然必须获取文件的路径才能读取它们。您知道所有文件的名称和程序包名称吗?如果是这样

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

使用

例如:

MyClass.class.getResourceAsStream("file.txt");
将打开
file.txt
,如果它与
MyClass

此外:

将在包
com.foo.bar


祝你好运!:)

首先,确保包含文件的包位于应用程序的类路径中。。 虽然您没有指定文件的路径,但您仍然必须获取文件的路径才能读取它们。您知道所有文件的名称和程序包名称吗?如果是这样,您可以尝试以下方法获取文件的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。

这个问题的答案也将回答您的问题,尽管从技术上讲不是dup:@alex我假设您正试图从该类访问另一个包。如果A类软件包A试图访问B包中的文件,
MyClass
将是A类软件包A。这是我的解释。
public class Test {
    public static void main(String[] args) throws Exception {
        URL f = Test.class.getClassLoader().getResource("resources/Test.txt");
        System.out.println(f);
    }
}