在 Java 中读取属性文件

新手上路,请多包涵

我有以下代码试图读取属性文件:

 Properties prop = new Properties();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
InputStream stream = loader.getResourceAsStream("myProp.properties");
prop.load(stream);

我在最后一行遇到异常。具体来说:

 Exception in thread "main" 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 Assignment1.BaseStation.readPropertyFile(BaseStation.java:46)
at Assignment1.BaseStation.main(BaseStation.java:87)

谢谢,尼科斯

原文由 nikos 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 639
2 个回答

根据您的异常, InputStream 为空,这意味着类加载器未找到您的属性文件。我猜 myProp.properties 在你项目的根目录下,如果是这样的话,你需要一个前面的斜线:

 InputStream stream = loader.getResourceAsStream("/myProp.properties");

原文由 Mark Elliot 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以在此页面上找到信息:

http://www.mkyong.com/java/java-properties-file-examples/

 Properties prop = new Properties();
try {
    //load a properties file from class path, inside static method
    prop.load(App.class.getClassLoader().getResourceAsStream("config.properties"));

    //get the property value and print it out
    System.out.println(prop.getProperty("database"));
    System.out.println(prop.getProperty("dbuser"));
    System.out.println(prop.getProperty("dbpassword"));

}
catch (IOException ex) {
    ex.printStackTrace();
}

原文由 Steven Gomez 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题