zoukankan      html  css  js  c++  java
  • Java 程序 关于Properties 类使用Store方法时不能会覆盖以前Properties 文件的内容

    F:\Demo.properties 文件内容:

    #u65B0u589Eu4FE1u606F
    #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=狗娃}

    问题解决:

    是因为FileWriter 打开文件的方式默认是覆盖,

    就是一旦执行了上面这句,那么原有文件中的内容被清空
    所以你在还没有p.load(in);加载Properties的时候就把文件清空了

    所以 一定要注意打开 FileWriter 的时机,来把握  FileWriter writer = new FileWriter("F:\Demo.properties"); 代码位置

  • 相关阅读:
    java 类加载机制总结
    栈和队列的java简单实现
    java内存模型个人理解总结
    Day12-微信小程序实战-交友小程序-搭建服务器与上传文件到后端并控制云开发数据库-项目总结与github代码发布流程(附上项目全部完整代码学习使用)
    Day12-微信小程序实战-交友小程序-优化“附近的人”页面与serach组件的布局和样式以及搜索历史记录和本地缓存*内附代码)
    CSS-好玩的样式(用高斯模糊制作平缓突起)
    Day18-PHP-入门2
    Day18-PHP-入门1
    Day17-JS-jQuery
    Day17-JS进阶-线程机制和事件机制
  • 原文地址:https://www.cnblogs.com/heganlin/p/5871321.html
Copyright © 2011-2022 走看看