今天闲来无事,就重新研究了一下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);