黑马程序员技术交流社区
标题:
很奇怪的问题,关于Properties
[打印本页]
作者:
张 涛
时间:
2012-9-6 17:35
标题:
很奇怪的问题,关于Properties
本帖最后由 张 涛 于 2012-9-23 07:27 编辑
本地的配置文件,info.txt,里面的内容是:
a=2
b=3
c=4
用properties里的方法,加载配置文件,然后修改参数,然后存储。
第一种是这样:
FileReader fr = new FileReader("D:\\info.txt");
Properties prop = new Properties();
prop.load(fr);
prop.setProperty("a", "1");
FileWriter fw = new FileWriter("D:\\info.txt");
prop.store(fw, "mic");
结果是,本地文本中的内容是
a=1
b=3
c=4
第二种这样:
FileReader fr = new FileReader("D:\\info.txt");
FileWriter fw = new FileWriter("D:\\info.txt");
Properties prop = new Properties();
prop.load(fr);
prop.setProperty("a", "1");
prop.store(fw, "mic");
结果是,本地文本中的内容只剩下:
a=1
为什么啊?
作者:
袁艳超
时间:
2012-9-6 17:49
当创建FileWriter对象时,因为info.txt已经存在了,所以它会新建一个空的info.txt,把原来的覆盖掉;
所以在把a的值修改后再创建Filewriter对象:
FileReader fr = new FileReader("D:\\info.txt");
Properties prop = new Properties();
prop.load(fr);
prop.setProperty("a", "1"); //先修改a的值
FileWriter fw = new FileWriter("D:\\info.txt"); //然后创建fw
prop.store(fw, "mic");
作者:
彭润生
时间:
2012-9-6 18:22
楼上说的狠对,FileWriter fw = new FileWriter("D:\\info.txt");这个写在前面就会重新创建一个文件,如果你想要续写可以这样
FileWriter fw = new FileWriter("D:\\info.txt",true);这样就可以了,这个是如果没有文件则也会创建一个,如果有,则续写。
作者:
周兴华
时间:
2012-9-6 18:32
给楼主画了流程图
截图05.png
(16.73 KB, 下载次数: 16)
下载附件
2012-9-6 18:31 上传
截图06.png
(16.8 KB, 下载次数: 16)
下载附件
2012-9-6 18:32 上传
作者:
张 涛
时间:
2012-9-12 09:47
哦,明白了,扫噶。结贴。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2