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

问题解决:

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

就是一旦执行了上面这句,那么原有文件中的内容被清空

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

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

Java 程序 关于Properties 类使用Store方法时不能会覆盖以前Properties 文件的内容的更多相关文章

  1. 设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。

    设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”,则抛出一个异常信息“This is a XYZ”,如果从命令行输入 ABC,则没有抛出异常.(只有 ...

  2. “全栈2019”Java异常第十一章:重写方法时只能抛出父类异常子集

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...

  3. Java定义bean实体类中的变量时变量名的问题

    首先:TMD,这个问题花了我两个多小时,居然是因为一个字母的大小写导致的,我瞬间就&Y^%^&%&()*%¥%¥¥&^#@%&; 事情是酱紫的: 我定义了一个变 ...

  4. Properties类的使用方法

    它提供了几个主要的方法: 1. getProperty ( String key),用指定的键在此属性列表中搜索属性.也就是通过参数 key ,得到 key 所对应的 value. 2. load ( ...

  5. [原创]Java中使用File类的list方法获取一定数量的文件:FilenameFilter接口的特殊用法

    前言:有时候我们可能会遇到这样一个问题:需要遍历一个包含极多文件的文件夹,首先想到的肯定是使用File.list()方法,该方法返回一个String[],但是如果文件达到几亿呢?这个时候我们就需要分批 ...

  6. Java程序中调用Python脚本的方法

    在程序开发中,有时候需要Java程序中调用相关Python脚本,以下内容记录了先关步骤和可能出现问题的解决办法. 1.在Eclipse中新建Maven工程: 2.pom.xml文件中添加如下依赖包之后 ...

  7. java利用反射调用类的某个方法

    java利用反射机制 可以动态调用某个类的某个方法,在 扩展系统功能或提供对外接口时经常用的到. 代码如下: 打印类Print.java package com.test.reflct; /** * ...

  8. Java学习笔记-File类的基本方法

    要渐渐养成写博客的习惯-----> 前段时间看Mars的java中的I/O流没怎么懂,发现I/O流好难啊.今天重新看一遍其他教学,还有书籍,做些笔记,记录下每天的学习生活. File类的一些方法 ...

  9. java反射 顺序输出类中的方法

    java反射可以获取一个类中的所有方法,但是这些方法的输出顺序,并非代码的编写顺序. 我们可以通过自定义一个注解来实现顺序输出类中的方法. 首先,先写一个类,定义增删改查4个方法 public cla ...

随机推荐

  1. Tomcat配置及网站创建教程(IDEA)

    Tomcat在本机的配置 解压 解压Tomcat压缩包后就算安装完成,解压完成生成文件夹 配置环境变量 1.配置JAVA_HOME 控制面板--系统--查看高级系统设置--环境变量--系统环境变量 新 ...

  2. hdu2067 简单dp或者记忆化搜索

    题意: 小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  3. 两种常见的Vlan间通信的方式

    目录 一:三层交换机方式 二:单臂路由方式 一:三层交换机方式 如图,PC1和PC2是企业内网的主机,属于不同的部门,故属于不同的VLAN.在交换机上配置vlan 10和vlan 20,并且配上主机的 ...

  4. node-OS&Domain&Net&Path

    OS--------------------------------------------- Node.js os 模块提供了一些基本的系统操作函数. var os = require(" ...

  5. WPF之自定义委托命令

    常用命令 WPF的命令实际上就是实现了ICommand接口的类,平时使用最多的是RoutedCommand类,还可以使用自定义命令. RoutedCommand只负责跑腿,并不对命名目标做任何操作,实 ...

  6. 【js】Leetcode每日一题-完成所有工作的最短时间

    [js]Leetcode每日一题-完成所有工作的最短时间 [题目描述] 给你一个整数数组 jobs ,其中 jobs[i] 是完成第 i 项工作要花费的时间. 请你将这些工作分配给 k 位工人.所有工 ...

  7. 基于MXNET框架的线性回归从零实现(房价预测为例)

    1.基于MXNET框架的线性回归从零实现例子 下面博客是基于MXNET框架下的线性回归从零实现,以一个简单的房屋价格预测作为例子来解释线性回归的基本要素.这个应用的目标是预测一栋房子的售出价格(元). ...

  8. Mac/Win录屏工具推荐-LICEcap

    轻小.便捷.操作简单 下载 LICEcap v1.30 for macOS LICEcap v1.28 for Windows 参考地址

  9. Webpack5构建速度提升令人惊叹,早升级早受益

    为什么要升级? webpack4用的好好的,运行稳定,为什么要升级到webpack5, 每次升级,都要经历一场地震,处理许多loader和plugin API的破坏性改变. 请给我们一个充分的升级理由 ...

  10. .Net·如何快速上手一个项目?

    阅文时长 | 0.61分钟 字数统计 | 1029.6字符 主要内容 | 1.引言&背景 2.步入正题,如何快速上手一个项目? 3.声明与参考资料 『.Net·如何快速上手一个项目?』 编写人 ...