我需要阅读一个配置文件 运行以下代码时出现此错误:
java.util.Properties$LineReader.readLine
文件config.cfg存在且具有r / w权限。
import java.util.*;
import java.util.Properties;
public class Config
{
Properties configFile;
public Config()
{
configFile = new java.util.Properties();
try {
configFile.load(this.getClass().getClassLoader().
getResourceAsStream("config.cfg"));
}catch(Exception eta){
eta.printStackTrace();
}
}
public String getProperty(String key)
{
String value = this.configFile.getProperty(key);
return value;
}
}
[java] java.lang.NullPointerException
[java] at java.util.Properties$LineReader.readLine(Properties.java:418)
[java] at java.util.Properties.load0(Properties.java:337)
[java] at java.util.Properties.load(Properties.java:325)
[java] at Config.<init>(Unknown Source)
[java] at ClosureBuilder.<clinit>(Unknown Source)
的src
- &GT; config.java
- &GT; config.cfg
答案 0 :(得分:8)
您必须将config.cfg
放在.class
文件所在的同一文件夹中。
答案 1 :(得分:0)
资源流返回null。资源不在您认为的类路径中。
答案 2 :(得分:0)
您的程序似乎无法找到config.cfg
文件。
this.getClass().getClassLoader().getResourceAsStream("config.cfg")
以上调用正在返回null
。
尝试以下方法:
InputStream is = this.getClass().getClassLoader().getResourceAsStream("config.cfg")
if(is !=null){
configFile.load(is);
}
此更改不会让您的程序失败。但是,如果找不到该文件,则您的属性对象configFile
将不具有该文件中的任何属性。
答案 3 :(得分:0)
使用this.getClass()检查路径获取的配置.getResource(“/”);