我想用代码读取名为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中读取它.
解决方法:
假设您使用的是Maven Standard Directory Layout,则应将资源放置在/ src / main / resources(或/ src / test / resources)中.
然后使用Java代码加载,如下所示:
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和getResourceAsStream将使用与加载上下文类相同的classLoader加载资源.在我的示例中,该类;在您的情况下,为ApacheCommonIOExample的classLoader.这些可能不一样.在我的示例中,资源和类位于同一位置,因为这是Maven项目定义的方式,因此我对此进行了提及.在您的示例中,可能试图从与加载ApacheCommonIOExample相同的位置加载资源.
标签:intellij-idea,java
来源: https://codeday.me/bug/20191026/1934946.html