2014-01-24 2 views
3

JTree를 구현하는 응용 프로그램이 있고 기본적으로 Java 속성 파일로 트리를 채 웁니다. 노드는 키이고 값은 노드의 내용입니다. 응용 프로그램은 동적으로 설계되었으므로 JButton 및 JTextField가 구현되어 새 값을 가져 와서 속성 키의 존재 키에 값을 저장합니다.Java 속성 파일에 새 값을 추가합니다.

그래서 예를 들어 나는 마우스

하고 추가 할 JTextField를하고하는 JButton I 입력 "토끼"를 사용하여 sample.properties의 기본값은

노드 = 고양이, 개 파일로 아래 라인을 가지고 노드에,보고 싶은 :

노드 내가 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(); 

업데이트

속성 API는이 기능이 필요한 이유는 확실하지 않다 지원하지 않습니다.
당신은 다음과 같이 시도 할 수 있습니다 :

example.properties

PROPERTIES_KEY_3=PROPERTIES_VALUE_3 
PROPERTIES_KEY_2=PROPERTIES_VALUE_2 
PROPERTIES_KEY_1=PROPERTIES_VALUE_1 

내가 Apache Commons Configuration 볼 것이다 프로그램

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 쌍에 새로운 값을 추가하여 기존 "key = value1"에 "value2"를 원하면 기존 키에 "key = value1, value2"처럼 추가합니다. – thestiggg

+0

@ user3201025 업데이트 확인 게시물 – CycDemo

+0

안녕하세요, 내 문제를 해결했습니다. BufferedWritter는 자체적으로 전체 속성 파일을 계속 추가하지만 FileOutputStream을 사용하면 필요한 내용을 다시 씁니다. – thestiggg

1

. 당신이 요구하는 것을하는 매우 구체적인 예가 있습니다.

시도 : 난 그냥이 시도

import org.apache.commons.configuration.PropertiesConfiguration; 

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

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

config.save(); 
+0

Java Properties와 비슷하지만 실제로는 하나의 키에서 여러 값을 충족시키는 것으로 보이지만 시간적으로 이점을 얻지 못하면 모든 것을 변경한다고 생각합니다. – thestiggg

관련 문제