2014-01-24 3 views
3

У меня есть приложение, которое реализует JTree и заполняет дерево файлом свойств java по умолчанию; Узлы - это ключи, а значения - это содержимое узла. Приложение было разработано так, чтобы быть динамичным, поэтому JButton и JTextField реализованы для ввода новых значений и поместите значения в ключи существующего в файле свойств.Свойства Java File, добавляющие новые значения

Так, например, у меня есть строка ниже в качестве значения по умолчанию через sample.properties файл

узел = кошка, собака, мыши

и используя JTextField и JButton I вход «кролика», чтобы добавить к узлу, чтобы выглядеть следующим образом:

узел = кошка, собака, мышей, кроликов

Я реализовал JTextField и JButton и они работают, но я просто не могу найти хороший способ добавляемых новые значения для существующих ключей в файле свойств.

ответ

3

Просто FileWriter

FileWriter fileWritter = new FileWriter("example.properties", true); 
BufferedWriter bufferWritter = new BufferedWriter(fileWritter); 
bufferWritter.append("PROPERTES_YOUR_KEY=PROPERTES_YOUR_VALUE"); 
bufferWritter.close(); 

Update

Свойства API не поддерживает, я не знаю, почему вам нужна эта функциональность.
Вы можете попробовать, как показано ниже:

example.properties

PROPERTIES_KEY_3=PROPERTIES_VALUE_3 
PROPERTIES_KEY_2=PROPERTIES_VALUE_2 
PROPERTIES_KEY_1=PROPERTIES_VALUE_1 

Программа

Properties pop = new Properties(); 
pop.load(new FileInputStream("example.properties")); 
pop.put("PROPERTIES_KEY_3", "OVERWRITE_VALUE"); 
FileOutputStream output = new FileOutputStream("example.properties"); 
pop.store(output, "This is overwrite file"); 

выход

PROPERTIES_KEY_3=OVERWRITE_VALUE 
PROPERTIES_KEY_2=PROPERTIES_VALUE_2 
PROPERTIES_KEY_1=PROPERTIES_VALUE_1 
+0

Я просто попытался это, похоже, не добавить к существующей пары ключ = значение. Для этого я хочу добавить новое значение к существующей паре key = value, поэтому, если я хочу «value2» в существующем «key = value1», он добавит к существующему ключу, чтобы он выглядел как «key = value1, value2», – thestiggg

+0

@ user3201025 проверить обновление сообщения – CycDemo

+0

эй спасибо, что решил мою проблему, сначала BufferedWritter просто добавляет весь файл свойств на себя, но с FileOutputStream он переписывает его, что мне нужно – thestiggg

1

Я хотел бы посмотреть на Apache Commons Configuration. У этого есть очень конкретные примеры, которые делают то, о чем вы просите.

Try:

import org.apache.commons.configuration.PropertiesConfiguration; 

PropertiesConfiguration config = new PropertiesConfiguration(
    "config.properties"); 

config.setProperty("my.property", somevalue); 

config.save(); 
+0

Кажется, что он похож на Java Properties, за исключением того, что он фактически обслуживает несколько значений одним ключом, но я думаю, что изменение всего, чтобы оно соответствовало этому, не принесло бы мне вреда – thestiggg

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