util.Properties在win10上破坏.properties文件的bug

时间:2017-12-09 20:46:44

标签: java

此错误仅在win10中发生。目前在win7中没有发生。

基本上我写了一些用户在各个领域输入的文字。

我使用它来保存用户编写的所有信息,因此当重新启动应用程序时,信息已经存在。

此外,每次用户点击按钮时,我都会调用此类。

使用正常行为,应用程序在win7上运行正常,并且可以正确保存所有内容。但是使用win10,可以有效地“破坏”文件,或者至少使文件变空。

package whatever;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Properties;

public class SaveFile {

    public static void mainSave(String[] args) {

        Properties prop = new Properties();
        OutputStream output = null;

        try {

            String instaPathCombined = "config.properties";
            output = new FileOutputStream(instaPathCombined);


            // set the properties value, the get methods all retrieve a string.
            prop.setProperty("a", UI.geta());
            prop.setProperty("b", UI.getb());
            prop.setProperty("c", UI.getc());
            prop.setProperty("d", UI.getd());
            prop.setProperty("e", UI.gete());
            prop.setProperty("f", UI.getf());
            prop.setProperty("g", UI.getg());
            prop.setProperty("h", UI.geth());
            prop.setProperty("i", UI.geti());
            prop.setProperty("j", UI.getj());
            prop.setProperty("k", UI.getk());
            prop.setProperty("l", UI.getl());
            prop.setProperty("m", UI.getm());
            prop.setProperty("n", UI.getn());
            prop.setProperty("o", UI.geto());
            prop.setProperty("p", UI.getp());
            prop.setProperty("q", UI.getq());
            prop.setProperty("r", UI.getr());
            prop.setProperty("s", UI.gets());
            prop.setProperty("t", UI.gett());
            prop.setProperty("u", UI.getu());
            prop.setProperty("v", UI.getv());

            // save properties to project root folder   
            prop.store(output, null);

        } catch (IOException io) {
            io.printStackTrace();
        } finally {
            if (output != null) {
                try {
                    output.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }
    }



}

我不知道为什么会这样做。

此外,这实际上是一个win10问题,没有其他因素在这里,因为我在安装了新的win10的VM上尝试了它并且它发生了。

0 个答案:

没有答案