使用Properties无法写入配置文件,求解

发布于 2022-09-07 08:14:00 字数 2193 浏览 18 评论 0

NewFile.java

private File configurationFile;

public NewFile(File file){
    this.configurationFile = file; 
}

public void newFile() throws IOException{
     if (!configurationFile.exists())
         configurationFile.createNewFile();
    
}

Configuration.java

private File configurationFile;
private Properties pro;
private FileInputStream input;
private FileOutputStream  output;
int count = 0;

public Configuration(File configurationFile, Properties pro, FileInputStream input, FileOutputStream output){
    this.configurationFile = configurationFile;
    this.pro = pro;
    this.input = input;
    this.output = output;
}

public void write() throws IOException{
    pro.load(input);
    
    String value = pro.getProperty("name");
    if (value != null){
        count = Integer.parseInt(value);
    }
    count++;
    
    pro.setProperty("name", count + "");
    pro.store(output, "");
    
    input.close();
    output.close();
}

Main.java

public static void main(String[] args){
    Configuration config = null;
    File configFile = null;
    FileInputStream input = null;
    FileOutputStream output = null;
    Properties pro = null;
    NewFile newFile = null;
    
    try{
        configFile = new File("info.ini");
        newFile = new NewFile(configFile);
        newFile.newFile();
        input = new FileInputStream(configFile);
        output = new FileOutputStream(configFile);
        pro = new Properties();
        config = new Configuration(configFile, pro, input, output);
        config.write();    
    }catch(IOException e){
        e.printStackTrace();
    }finally{
        if(input != null){
            try{
                input.close();
            }catch(IOException e){
                e.printStackTrace();
            }
        }
        if (output != null){
            try{
                output.close();
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    }
}

我测试了一下代码,发现

if (value != null){
        count = Integer.parseInt(value);
    }

没有执行,但是不知道为什么,求解

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尘曦 2022-09-14 08:14:00

你把配置文件后缀改成properties试试

不念旧人 2022-09-14 08:14:00

只是创建了空的文件info.ini,

String value = pro.getProperty("name");//value为null所以不执行if里面的代码
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文