private static Properties getProperties(File file)
{
InputStream in = null;
try
{
in = new FileInputStream(file);
return loadProperties(in);
}
catch (IOException ex)
{
return null;
}
finally
{
if (in != null)
{
try
{
in.close();
}
catch (IOException ex)
{
ex.printStackTrace();
// ignore
}
}
}
}
当我点击保存按钮保存我的配置时,我得到空指针异常。我试图调试代码,在那段时间我发现>中的对象的值为null。我不懂为什么?
我还检查过我作为参数文件传递的路径是否正确
答案 0 :(得分:1)
我认为NPE发生的原因只有一个 - 它没有找到你给出的路径的文件。
我还检查过我作为参数文件传递的路径是否正确
有时即使你认为你提供了正确的文件路径,取决于目录层次结构,程序可能会引用相对路径,这可能与你给出的路径不同。 然后你得到 in = null 。
尝试ClassLoader.getSystemResourceAsStream()而不是FileInputStream(),您可以将文件放在类路径下。
答案 1 :(得分:0)
尝试使用file
确保file.exists()
对象存在。如果文件存在,它将返回true
。如果file
对象是null
,它也会引发NullPointerException。