java - 测试文件是否存在但出现空指针异常

标签 java nullpointerexception

public class ReadConfig  {

    private File configFile; 

    public boolean testConfig(){
        if(Utils.isWindows()){
            File configFile = new File("C:/config.properties");
        }
        else{
            File configFile = new File("/config.properties");
        }
        if(configFile.exists() && !configFile.isDirectory()){
            System.out.println(configFile + "found!");
            return true;
        }
        else{
            try {
                configFile.createNewFile();
                System.out.println(configFile + "created!");
            } catch (IOException e) {
                e.printStackTrace();
            }
            return true;
        }
    }
}

这会在下一行返回一个空点异常

if(configFile.exists() && !configFile.isDirectory()){

在我看来它应该返回 false,为什么它会抛出 NullPointerException

最佳答案

问题在于 ifelse 分支中的语句初始化了一个名为 configFile 的新变量,而不是使用该字段。删除 File 应该可以解决问题,例如:

if(Utils.isWindows()){
    configFile = new File("C:/config.properties");
} else {
   configFile = new File("/config.properties");
}

关于java - 测试文件是否存在但出现空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26510039/

相关文章:

java - Jar文件下载到缓存后只能打开一次

java - java客户端中的NullPointer异常?

java - 将文件夹中的文件列出到 JOptionPane

java - 多行 lambda 比较器

java - 如何完成字符串中已更改的部分?

java - Hibernate、Postgre/MySQL 差异

java - 将图表[]从一个变量复制到另一个变量,然后更改单个字符

java - 谁能帮我解决java中的 "tostring"方法?

java - 尝试通过 "this"传递对象时出现 NullPointerException

android - Activity 为空