从不同的文件夹java中读取配置文件

时间:2013-01-03 23:35:52

标签: java

我正在尝试根据以下代码读取配置文件:

http://www.opencodez.com/java/read-config-file-in-java.htm

所以我发现如果config.cfg与我运行代码的目录位于同一目录,那么一切都很好但是如果配置在不同的目录

example: /path/to/config.cfg

我收到此错误:

java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
at packagename.conf.Config.<init>(Config.java:14)
at packagename.conf.Config.main(Config.java:30)

我的猜测是无法找到该文件。 但是如何修改上面的代码以从其他文件夹中读取配置文件? 感谢

编辑:链接中的代码:

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("myapp/config.cfg"));         
    }catch(Exception eta){
        eta.printStackTrace();
    }
   }

   public String getProperty(String key)
   {
    String value = this.configFile.getProperty(key);        
    return value;
   }
}

1 个答案:

答案 0 :(得分:3)

您发布的代码要求配置文件位于类路径上(即,在Java查找.class文件的相同位置)。因此,您可以在类路径中包含包含配置文件的目录:

java   -classpath .:/path/to   packagename.conf.Config

否则您可以修改代码以期望配置文件成为常规文件系统文件:

final InputStream cfg = new FileInputStream("/path/to/config.cfg");
try
    { configFile.load(cfg); }
finally
    { cfg.close(); }