글
예전에 시스템 프로퍼티 전부 출력해보고.. 그때 awt 분석하다가..os 종속적인 부분들에 대해 프로퍼티로
값을 읽어오는걸 봐서..
java.util.properties 는 내 예상보다 우월한 클래스였다.
테스트 고고
아.. 그나저나 컨테이너간의 형 변환이 아주 쉽다. 프로퍼티는 해쉬셋 형태인데.. 요걸 list구조에
쉽게 넣을수 있다. addAll() 메서드 대박!
java.util.concurrent 요 패키지 어제 살짝 훑어봣는데.. 대박임 (스레드 관련해서)
load(Reader)
/ store(Writer, String)
메소드는, 문자 베이스의 스트림에 대한 프로퍼티의 로드와 포함을, 후술 하는 단순한 행 지향 형식에서 실시합니다. load(InputStream)
/ store(OutputStream, String)
메소드는 load(Reader) /store(Writer, String) 페어와 같이 동작합니다만, 입력/출력 스트림이 ISO 8859-1 문자 인코딩으로 encode 되는 점만은 다릅니다. 이 인코딩으로 직접 표현할 수 없는 문자는,Unicode 이스케이프를 사용해 기술할 수 있습니다. escape sequence로 사용할 수 있는 것은, 단일의 문자 'u' 뿐입니다. native2ascii 툴을 사용하면(자), 프로퍼티 파일을 다른 문자 인코딩으로 변환하거나 그 역을 실행할 수 있습니다.
loadFromXML(InputStream)
및 storeToXML(OutputStream, String, String)
메소드는, 프로퍼티을 단순한 XML 형식으로서 로드 및 포함할 수 있습니다. 디폴트에서는 UTF-8 문자 인코딩이 사용됩니다만, 필요에 따라서 인코딩을 지정할 수 있습니다. XML 프로퍼티 문서에서는, 다음의 DOCTYPE 선언이 사용됩니다.
<! DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
프로퍼티을 export/임포트 할 경우에, 시스템 URI (http://java.sun.com/dtd/properties.dtd)에는 액세스 하지 않습니다. 시스템 URI 는, DTD 를 일의에 식별하는 캐릭터 라인으로서 사용됩니다. 그 내용은 다음과 같습니다.<? xml version="1.0" encoding="UTF-8"? ><! -- DTD for properties --><! ELEMENT properties ( comment?, entry* ) ><! ATTLIST properties version CDATA #FIXED "1.0"><! ELEMENT comment (#PCDATA) ><! ELEMENT entry (#PCDATA) ><! ATTLIST entry key CDATA #REQUIRED>
음.. 사용하기 엄청 간단함..
package properties;
import java.io.*;
import java.util.*;
public class main
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
//properties를 통한 xml 파일 저장,로드
//로드 테스트
Properties pro2 = new Properties();
try { pro2.loadFromXML(new FileInputStream("park.xml")); }
catch (InvalidPropertiesFormatException e1)
{ // TODO Auto-generated catch block e1.printStackTrace(); }
catch (FileNotFoundException e1)
{ // TODO Auto-generated catch block e1.printStackTrace(); }
catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); }
//테스트용 출력
Iterator<Object> it = pro2.keySet().iterator();
System.out.println("로드 테스트 출력");
while(it.hasNext()) { System.out.println(it.next()); }
Properties pro = new Properties();
pro.put("1", "장호1");
pro.put("2", "장호2");
pro.put("3", "장호3");
pro.put("4", "장호4");
pro.put("5", "장호5");
try { pro.storeToXML(new FileOutputStream("park.xml"),"a"); }
catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }
catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
}}
'자바se api > util' 카테고리의 다른 글
set,map,properties (2013/12/04) (0) | 2014.01.01 |
---|
RECENT COMMENT