【发布时间】:2013-04-13 19:05:52
【问题描述】:
我对 Java 中的属性有一点问题,也许你可以帮助我。
在以下代码中,我将我的 Properties 对象写入 XML:
global.storeToXML(new FileOutputStream(propertiesPath + SEPERATOR + GLOBAL + FILEEXTENSION), "");
这可以正常工作并生成以下文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>test</comment>
<entry key="port">5001</entry>
<entry key="maxPlayers">1</entry>
</properties>
但如果我尝试使用以下代码加载此文件:
FileInputStream fis = new FileInputStream(propertiesPath + SEPERATOR + GLOBAL + FILEEXTENSION);
if (fis != null)
global.loadFromXML(fis);
loadFromXML 方法抛出 NullPointerException。根据 Properties 的文档,这通常意味着 fis 将为空,但显然不是。
我已经尝试了 load() 和 store() 方法(没有 XML)并且得到了同样的错误。当我尝试通过 fis 手动读取文件时,它工作正常。
感谢您的帮助!
【问题讨论】:
-
什么是
global?可能global为空。 -
而异常的堆栈跟踪是?
-
检查一下:
if (fis != null && global!=null)! -
哦该死的,现在我很惭愧...忘记在这一点上初始化全局...谢谢。
标签: java properties nullpointerexception fileinputstream