2013-03-06 4 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 (файл * ложь *)' –

+0

Проверить http://stackoverflow.com/questions/4225794/delete-key-and-value-from-a-property-file – Abi

+0

Не открывайте файл в режиме добавления. –

ответ

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

ya получил это спасибо .. – Rachel

+0

"prop.store (out1, null);" это единственный способ написать файл свойств? – Rachel

+0

- это специально разработанный метод для сохранения свойств, что особенного в том, что он автоматически преобразует символы в форматы \ uxxxx при необходимости –