InputStream in = new FileInputStream("Demo.txt");
Properties p = new Properties();
p.load(in);
p.setProperty("dd","3000");
OutputStream out = new FileOutputStream("Demo.txt");
p.store(out,"sdf");
System.out.println(p);
out.close();
in.close();
这样写就可以改变Demo.txt 的值
为什么下面的代码不能会覆盖以前 Demo.txt文件中的值呢?
OutputStream out = new FileOutputStream("Demo.txt");
InputStream in = new FileInputStream("Demo.txt");
Properties p = new Properties();
p.load(in);
p.setProperty("dd","3000");
p.store(out,"sdf");
System.out.println(p);
out.close();
in.close();
OutputStream out = new FileOutputStream("Demo.txt");
把这个代码移动到上面和中间有什么不同之处吗?
求大神们求解。
------解决方案--------------------
问题在这
OutputStream out = new FileOutputStream("Demo.txt");
FileOutputStream打开文件的方式默认是覆盖,就是一旦执行了上面这句,那么原有文件中的内容被清空
所以你在还没有p.load(in);加载Properties的时候就把文件清空了