8

我需要读取配置文件,运行以下代码时出现此错误:

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)

编辑 - 目录结构

源代码

-> 配置.java

-> 配置.cfg

4

4 回答 4

10

您必须将您的文件放在文件所在config.cfg的同一文件夹中.class

于 2012-05-23T06:30:17.793 回答
0

资源流作为 null 返回。该资源不在您认为它在类路径中的位置。

于 2012-05-23T06:05:22.500 回答
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将不具有文件中的任何属性。

于 2012-05-23T06:05:43.977 回答
0

使用 this.getClass().getResource("/"); 检查您为配置获取的路径;

于 2012-12-12T11:31:55.330 回答