不用框架的方法导入properties文件时,除了把文件放在resource下面,网上查到的方法都找不到文件,一直报空指针异常。
自己设坑:一开始为了测试方便,把property放在了本地绝对路径下,使用下面代码能够导入。
File f = new File("D:/x.properties");
Properties p = new Properties();
p.load(new FileInputStream(f));
后要改相对路径,变为new File("x.properties")时发现导不进去,报异常。
各种尝试,发现在文件名前加上/,就能不报错,能够顺路找到值。
出现个情况:把x.properties内的内容修改一下后,得到的key,value值还是原来的x.properties的内容,
找遍全局,发现全项目就一个x.properties文件,并没有第二份。奇怪了。
后来发现p 导入的是原来放在绝对路径D盘根目录下的x.properties对手。一但删除掉该文件,系统又开始报错空指针。
就会多想起上代码:PropertyUtil
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class PropertyUtil {
public static Properties getResources(String filename) {
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(filename);
Properties prop = new Properties();
try {
prop.load(is);
} catch (IOException e) {
e.printStackTrace();
}
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return prop;
}
}
Properties prop = new Properties();
prop = getResources("handler.properties");