예전에 시스템 프로퍼티 전부 출력해보고.. 그때 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
by givingsheart 2014. 1. 1. 16:29