Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.util.Properties$LineReader.readLine_Java_Properties - Fatal编程技术网

java.util.Properties$LineReader.readLine

java.util.Properties$LineReader.readLine,java,properties,Java,Properties,我需要读取一个配置文件 我在运行以下代码时遇到此错误: 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(

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

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]位于java.util.Properties$LineReader.readLine(Properties.java:418)
[java]位于java.util.Properties.load0(Properties.java:337)
[java]位于java.util.Properties.load(Properties.java:325)
配置时的[java]。(未知源)
ClosureBuilder上的[java]。(未知源)
编辑目录结构 src

->config.java


->config.cfg

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

您的程序似乎无法找到
config.cfg
文件

this.getClass().getClassLoader().getResourceAsStream("config.cfg")
上述调用正在返回
null

请尝试以下方法:

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

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

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

使用此.getClass().getResource(“/”)检查配置所获得的路径

请提供您得到的全部错误,我想这不是一个无法读取文件的错误。@OliverWeiler是的,您是正确的。你能把答案贴出来让我接受吗?但我确实需要配置文件中的数据。检查编辑-目录结构检查编辑-目录Structure@cloudYturtle将它放在src目录中很好,但是它仍然不在类路径中,显然,否则它会工作。你还没有真正解决这个问题。运行时它在哪里?它需要位于JAR文件的根目录中,或者类路径项的根目录中,更具体地说,您必须将它放在作为包结构头部的文件夹中。在本例中,没有包结构,因此您的答案是正确的,但通常情况下不会是正确的。如果他使用了Class.getResourceAsStream(),这也是正确的,但他没有。下面提到的解决方案对我没有帮助,我使用的“getResourceAsStream”对我没有帮助。我公开了静态方法并使用FileInputStream
InputStream is = this.getClass().getClassLoader().getResourceAsStream("config.cfg")
if(is !=null){
    configFile.load(is);
}