2013-03-06 113 views
6

如何删除属性文件中的键和值?我的财产文件包含以下内容:删除属性文件中的条目

key1=value1 
key2=value2 

我用下面的代码删除条目key2=value2。在此之后,现在该文件具有以下值:

key1=value1 
key2=value2 
Wed Mar 06 12:36:32 IST 2013 
key1=value1 

Java代码来删除条目:

FileOutputStream out1 = new FileOutputStream(file, true); 
prop.remove(key); 
prop.store(out1,null); 

什么是错我做。如何在写入文件之前清除文件的全部内容。

+0

尝试'新的FileOutputStream中(文件,* FALSE *)' – 2013-03-06 07:19:35

+0

检查http://stackoverflow.com/questions/4225794/delete-key-and-value-from-a-property-file – Abi 2013-03-06 07:20:44

+0

不要以追加模式打开文件。 – 2013-03-06 07:21:10

回答

7

1)属性文件内容应该如下:

key1=value1 
key2=value2 

2)您正在打开中追加模式的文件,这是错误的。它应该是:

new FileOutputStream(file); 

3)关闭out1明确,Properties.store API:

输出流保持此方法返回后开放。

如果你不想使用Properties.store,你可以写属性直接

PrintWriter pw = new PrintWriter("test.properties"); 
for(Entry e : props.entrySet()) { 
    pw.println(e); 
} 
pw.close(); 
+0

你得到它谢谢.. – Rachel 2013-03-06 07:21:56

+0

“prop.store(out1,null);”这是写入属性文件的唯一方法吗? – Rachel 2013-03-06 10:33:12

+0

它是特别设计的保存属性的方法,当属性文件需要 – 2013-03-06 10:58:46