使用 properties.load() 时出现 NullPointerException

Posted

技术标签:

【中文标题】使用 properties.load() 时出现 NullPointerException【英文标题】:NullPointerException when using properties.load() 【发布时间】: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 &amp;&amp; global!=null)! 哦该死的,现在我很惭愧...忘记在这一点上初始化全局...谢谢。 【参考方案1】:

忘记初始化全局。抱歉这个愚蠢的问题。

【讨论】:

以上是关于使用 properties.load() 时出现 NullPointerException的主要内容,如果未能解决你的问题,请参考以下文章

运行 adb 命令时出现问题 / 使用平板设备进行开发时出现问题

使用 FolderBrowserDialog 时出现异常

使用串行插件时出现 Ionic Capacitor Android 错误 - 连接到外部设备时出现 Cordova_not_available

在 keras 中使用 EfficientNet 时出现 ResourceExhaustedError

使用 htdocs xampp 运行命令时出现以下错误

使用 functools.reduce 时出现属性错误