您的位置:首页 > 运维架构

Properties 类使用Store方法时 避免 覆盖以前Properties 文件的内容

2017-03-29 19:04 288 查看
F:\\Demo.properties 文件内容:

#\u65B0\u589E\u4FE1\u606F

#Wed Sep 14 11:16:24 CST 2016

province=广东

tt=近蛋

city=佛山市

Java代码:

        public static void test() throws IOException {

        FileWriter writer = new FileWriter("F:\\Demo.properties");

        FileReader reader = new FileReader("F:\\Demo.properties");

        Properties p = new Properties();

        p.load(reader);

        System.out.println(p);

        p.setProperty("dd", "中建普联");

        p.setProperty("cc", "狗娃");

        p.setProperty("bb", "狗剩");

        p.setProperty("aa", "铁蛋");

        p.store(writer, "新增信息");

        System.out.println(p);

        reader.close();

        writer.close();    

    }   

 控制台输出

{}

{dd=中建普联, aa=铁蛋, bb=狗剩, cc=狗娃}

出现的问题:

一,读取的内容为空,

二,没有覆盖以前Properties 文件的内容

原因是:

FileWriter writer = new FileWriter("F:\\Demo.properties");

FileWriter 打开文件的方式默认是覆盖,就是一旦执行了上面这句,那么原有文件中的内容被清空

所以你在还没有p.load(in);加载Properties的时候就把文件清空了


修改后如下 :

public static void test() throws IOException {

        

        FileReader reader = new FileReader("F:\\Demo.properties");

        Properties p = new Properties();

        p.load(reader);

        System.out.println(p);

        p.setProperty("dd", "中建普联");

        p.setProperty("cc", "狗娃");

        p.setProperty("bb", "狗剩");

        p.setProperty("aa", "铁蛋");

        FileWriter writer = new FileWriter("F:\\Demo.properties");

        p.store(writer, "新增信息");

        

        System.out.println(p);

        reader.close();

        writer.close();    

    }

 控制台输出:

{province=广东, tt=近蛋, city=佛山市}

{dd=中建普联, province=广东, tt=近蛋, aa=铁蛋, bb=狗剩, city=佛山市, cc=狗娃}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: