本帖最后由 覃宏海 于 2012-9-15 14:04 编辑
为什么运行的结果和我想的不一样?
我预想的是先读取文件中的键值对 然后再改变某个键值对的值
但是输出结果却不是这样子
请问问题在哪里?
public static void method() throws IOException{
Properties pr = new Properties();
FileReader fr = new FileReader("d:\\bbb.txt");
FileWriter fw = new FileWriter("d:\\bbb.txt");
pr.load(fr);
System.out.println(pr);
pr.setProperty("wangwu", "10");
pr.store(fw, "haha");
System.out.println(pr);
fr.close();
fw.close();
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public static void method() throws IOException{
Properties pr = new Properties();
FileReader fr = new FileReader("d:\\bbb.txt");
FileWriter fw = new FileWriter("d:\\bbb.txt");<--------------------------------我明白了,问题出现在这里,它把FileReader的文件给覆盖了,变成了一个空白文件
pr.load(fr);
System.out.println(pr);<----------------------------------------------------------应该把它移到这语句的后面,这样数据就存在了内存中,FlieWriter覆盖后内存的数据还是存在的!
pr.setProperty("wangwu", "10");
pr.store(fw, "haha");
System.out.println(pr);
fr.close();
fw.close();
} |