在java中找到空指针异常

时间:2014-07-09 15:43:35

标签: java

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。我不懂为什么?

我还检查过我作为参数文件传递的路径是否正确

2 个答案:

答案 0 :(得分:1)

我认为NPE发生的原因只有一个 - 它没有找到你给出的路径的文件。

  

我还检查过我作为参数文件传递的路径是否正确

有时即使你认为你提供了正确的文件路径,取决于目录层次结构,程序可能会引用相对路径,这可能与你给出的路径不同。 然后你得到 in = null

尝试ClassLoader.getSystemResourceAsStream()而不是FileInputStream(),您可以将文件放在类路径下。

答案 1 :(得分:0)

尝试使用file确保file.exists()对象存在。如果文件存在,它将返回true。如果file对象是null,它也会引发NullPointerException。