关于Java中的路径问题一点小想法

今天闲来无事,就重新研究了一下Servlet,想着以前读取路径用的方法是:

先创建一个读取文件的输入流

public static final String configFile="dbcp.properties";

InputStream is = new InputStream(new FileInputStream(new File()));

Properties property = new Properties();

property.load(is);

突发奇想,想着试一下用另外一种方法来读取配置文件

(在此说明一下,项目结构是创建了一个和src同级的res目录,然后文件就保存在该目录下.)

一开始,我读取文件的路径代码写成了下面:

InputStream is = JDBCUtiles.class.getClassLoader().getResourceAsStream(res/configFile);

.........

后来一运行,就报了一个错误,错误代码如下:

Exception in thread "main" java.lang.NullPointerException
 at java.util.Properties$LineReader.readLine(Unknown Source)
 at java.util.Properties.load0(Unknown Source)
 at java.util.Properties.load(Unknown Source)
 at com.huangchao.model.JdbcUtiles.init(JdbcUtiles.java:17)
 at com.huangchao.model.Test.main(Test.java:14)

检查异常信息:空指针异常,就是说我没有读取到文件咯,一看就是文件的路径错误了,所以方法读取不到...

一一检查.打开WEB-INF下的classes文件夹下的目录结构,才发现:...........................

dbcp.properties文件被编译到的位置其实就是在根目录下........

而且在该文件夹下面找不到有res文件夹....

所以就是说,,,java虚拟机在编译该文件的时候,是忽略了res目录的.

在eclipse中创建 的res目录只是为了好管理文件...

正确代码如下:

public static final String configFile = "dbcp.properties";

InputStream is = JDBCUtiles.class.getClassLoader().getResourceAsStream(configFile);

Properties property = new Properties();

property.load(is);

原文地址:https://www.cnblogs.com/sirab415/p/5709178.html