Java 程序 关于Properties 类使用Store方法时不能会覆盖以前Properties 文件的内容
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 文件的内容的更多相关文章
- 设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。
设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”,则抛出一个异常信息“This is a XYZ”,如果从命令行输入 ABC,则没有抛出异常.(只有 ...
- “全栈2019”Java异常第十一章:重写方法时只能抛出父类异常子集
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...
- Java定义bean实体类中的变量时变量名的问题
首先:TMD,这个问题花了我两个多小时,居然是因为一个字母的大小写导致的,我瞬间就&Y^%^&%&()*%¥%¥¥&^#@%&; 事情是酱紫的: 我定义了一个变 ...
- Properties类的使用方法
它提供了几个主要的方法: 1. getProperty ( String key),用指定的键在此属性列表中搜索属性.也就是通过参数 key ,得到 key 所对应的 value. 2. load ( ...
- [原创]Java中使用File类的list方法获取一定数量的文件:FilenameFilter接口的特殊用法
前言:有时候我们可能会遇到这样一个问题:需要遍历一个包含极多文件的文件夹,首先想到的肯定是使用File.list()方法,该方法返回一个String[],但是如果文件达到几亿呢?这个时候我们就需要分批 ...
- Java程序中调用Python脚本的方法
在程序开发中,有时候需要Java程序中调用相关Python脚本,以下内容记录了先关步骤和可能出现问题的解决办法. 1.在Eclipse中新建Maven工程: 2.pom.xml文件中添加如下依赖包之后 ...
- java利用反射调用类的某个方法
java利用反射机制 可以动态调用某个类的某个方法,在 扩展系统功能或提供对外接口时经常用的到. 代码如下: 打印类Print.java package com.test.reflct; /** * ...
- Java学习笔记-File类的基本方法
要渐渐养成写博客的习惯-----> 前段时间看Mars的java中的I/O流没怎么懂,发现I/O流好难啊.今天重新看一遍其他教学,还有书籍,做些笔记,记录下每天的学习生活. File类的一些方法 ...
- java反射 顺序输出类中的方法
java反射可以获取一个类中的所有方法,但是这些方法的输出顺序,并非代码的编写顺序. 我们可以通过自定义一个注解来实现顺序输出类中的方法. 首先,先写一个类,定义增删改查4个方法 public cla ...
随机推荐
- PHP程序员要掌握哪些技术
PHP程序员要掌握哪些技术 第一阶段: (PHP+MySQL核心编程)面向对象编程MySQL数据库,MySQL的优化细节.HTTP协议,http也是我们web开发的基石.对我们了解PHP底层机制有很大 ...
- $.ajax()——超时设置
getAjax: function (method, apiUrl, options, callback) { var xhr = $.ajax({ type: method, url: apiUrl ...
- POJ3277 线段树段更新,点询问+二分离散化+暴力
题意: x轴上有一些矩形,问你这些矩形覆盖的面积和是多少. 思路: 首先范围很大,n很小,果断离散化,然后我们就是求出任意区间的最大值作为当前区间的高,最后在算一遍答案就行了, ...
- POJ3160强连通+spfa最长路(不错)
题意: 给你一个有向图,每个点上有一个权值,可正可负,然后给你一些链接关系,让你找到一个起点,从起点开始走,走过的边可以在走,但是拿过权值的点就不能再拿了,问最多能拿到多少权值? 思路: ...
- CVE-2010-2883:基于样本分析 PDF SING表字符溢出漏洞
0x01 前言 CVE-2010-2883 漏洞的成因是由于 CoolType.dll 这个动态链接库在解析 SING 表中的 uniqueName 这个项时没有对长度进行限制,导致使用 strcat ...
- Day004 while和do-while循环
循环结构(while和do-while) while循环 do...while循环 for循环 在Java5中引入了一种主要用于数据的增强for循环 //输出1~100 int i=0; while ...
- 【编译原理】求First和Follow
写这篇博客的原因,是因为考试前以为自己已经将这个问题弄清楚了,但是,考试的时候,发现自己还是不会,特别是求follow集合.虽然考试结束了,希望屏幕前的你,可以真正理解这个问题. 码字和做视频都不容易 ...
- 7 IDEA连接数据库
IDEA连接数据库 连接成功后,选择数据库 查看数据库/表的内容就双击数据库 修改数据库--要点击DB才能保存 出现问题 错误描述 Server returns invalid timezone. G ...
- Git 系列教程(5)- 记录每次更新到仓库
文件状态 你工作目录下的每一个文件只有两种状态:tracked 或 untracked tracked 已跟踪 tracked 的文件是指那些被纳入了版本控制的文件 在上一次快照中有它们的记录,在工作 ...
- Spring Cloud Alibaba(10)---Sentinel控制台搭建+整合SpringCloudAlibaba
上一篇博客讲了Sentinel一些概念性的东西 Spring Cloud Alibaba(9)---Sentinel概述 这篇博客主要讲 Sentinel控制台搭建,和 整合SpringCloudAl ...