在Intellij中放置文本文件的位置

时间:2017-02-18 14:53:38

标签: java intellij-idea

我想在代码中读取名为FileofNames.txt的文件。但是当我运行这段代码时,我得到一个NullPointerException。

URL url=ApacheCommonIOExample.class.getResource("src/Files/FileofNames.txt");
System.out.println(url.getPath());

所以我的问题是我在哪里可以把文件放在intellij中,以便我可以从任何java源代码中读取它。 Image of my directory 。目前我的文本文件在src / Files中,我想从src / org / java.practice / FileName.java中读取它。

1 个答案:

答案 0 :(得分:4)

假设您使用的是Maven Standard Directory Layout,那么资源应放在ts(或/src/main/resources中)。

然后使用Java代码加载,如下所示:

/src/test/resources

<强>解释

final InputStream stream = this.getClass().getResourceAsStream("/filename.txt"); final InputStreamReader reader = new InputStreamReader(stream); final BufferedReader buffered = new BufferedReader(reader); String line = buffered.readLine(); getResource将使用用于加载上下文类的相同classLoader加载资源。在我的示例中getResourceAsStream类;在您的情况下,this的classLoader。这些可能不一样。在我的例子中,资源和类已知在同一个地方,因为它是maven项目定义的方式,因此我提到它。在您的示例中,可能是尝试从加载ApacheCommonIOExample的相同位置加载资源。