【问题标题】:java.util.Properties$LineReader.readLinejava.util.Properties$LineReader.readLine
【发布时间】:2012-05-23 05:57:26
【问题描述】:

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

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

-> config.java

-> config.cfg

【问题讨论】:

  • 请提供您遇到的完整错误
  • 我猜它无法读取文件。
  • @OliverWeiler 是的,你是对的。您可以发布答案以便我接受吗?

标签: java properties


【解决方案1】:

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

【讨论】:

  • 更具体地说,您必须将其放在作为包结构头部的文件夹中。在这种情况下,没有包结构,因此您的答案是正确的,但通常不会。如果他使用了 Class.getResourceAsStream() 也是正确的,但他没有。
  • 下面提到的解决方案对我没有帮助,我使用“getResourceAsStream”对我没有帮助。我制作了公共静态方法并使用了 FileInputStream
【解决方案2】:

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

【讨论】:

  • 检查编辑 - 目录结构
  • @cloudYturtle 将它放在 src 目录中很好,但显然它仍然不在类路径中,否则它会起作用。你实际上并没有解决这个问题。它在运行时在哪里?它需要位于 JAR 文件的根目录或类路径项的根目录中。
【解决方案3】:

您的程序似乎找不到config.cfg 文件。

this.getClass().getClassLoader().getResourceAsStream("config.cfg")

上述调用返回null

试试下面的:

InputStream is = this.getClass().getClassLoader().getResourceAsStream("config.cfg")
if(is !=null){
    configFile.load(is);
}

此更改不会让您的程序失败。而且,如果没有找到该文件,您的属性对象configFile 将不具有该文件的任何属性。

【讨论】:

  • 但我确实需要配置文件中的数据。
  • 检查编辑 - 目录结构
【解决方案4】:

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

【讨论】:

    猜你喜欢
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 2013-03-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    相关资源
    最近更新 更多