2015-04-29 3 views
0

Я пытаюсь удалить пользователей (ключ) и пароли (значение ключа) в файле свойств, но после их удаления я все еще могу «войти» с использованием имени пользователя. Мой код для удаления свойств:Не удается удалить свойства java

FileReader fileReader = new FileReader("File.properties"); 
     properties.load(fileReader); 
     properties.remove(username); 
     fileReader.close(); 

     FileWriter fileWriter = new FileWriter("File.properties", true); 
     properties.store(fileWriter, "Updated"); 
     System.out.println(username + properties.getProperty(username)); 
     fileWriter.close(); 

Это то, что выглядит файл свойств после выполнения кода.

ср 29 апреля 21:31:27 CEST 2015

userr = проходят

Обновлено Ср 29 апреля 21:31:44 CEST 2015

(Удалено)

Так ключ и значение ключа исчезли в новой строке, но он все еще там, и я могу его использовать. Итак, как я могу удалить его из файла свойств? Извините, если он запутался. Thanks.`

+1

Я думаю, что я просто решил это, удалив «истину» из файла-файла ... Я думал, что он создаст новый файл свойств и удалит все старое содержимое, включая значения, которые я не хотел удалить. – Jullix993

ответ

0

Посмотрите официальное сообщение FileWriter Javadoc. Второй параметр в конструкторе - это флаг для принятия решения о том, добавлять ли к файлу (true) или перезаписывать его (false). Как вы сами заметили, установив его на true, вы добавили только добавленные свойства к существующим, и все, что их читало, вероятно, получило первые, оригинальные значения из файла. Установка его на false должна решить вашу проблему.

+0

Я думал, что установка булева append на true приведет к стиранию всех старых данных в свойствах, и это та часть, которую я до сих пор не понимаю. Часть, где I properties.load, сохраняется, а затем применяется, когда я использую properties.store? Потому что он должен каким-то образом знать, как записать старые данные из файла свойств в новый файл. – Jullix993

1

как документы:

FileWriter (файл Файл, логическое добавление) Создает объект FileWriter данный объект File.

поэтому, если вы поместили true во второй параметр, добавляемый к файлу donr, переопределите его.

Смежные вопросы