Java의 속성 클래스
그만큼 속성 객체에는 키와 값 쌍이 모두 문자열로 포함되어 있습니다. java.util.Properties 클래스는 Hashtable의 하위 클래스입니다.
속성 키를 기반으로 속성 값을 가져오는 데 사용할 수 있습니다. Properties 클래스는 속성 파일에서 데이터를 가져오고 데이터를 속성 파일에 저장하는 메서드를 제공합니다. 또한 시스템의 속성을 가져오는 데에도 사용할 수 있습니다.
속성 파일의 장점
속성 파일에서 정보가 변경된 경우 재컴파일이 필요하지 않습니다. 속성 파일에서 정보가 변경된 경우 Java 클래스를 다시 컴파일할 필요가 없습니다. 자주 변경되는 정보를 저장하는데 사용됩니다.
Properties 클래스의 생성자
| 방법 | 설명 |
|---|---|
| 속성() | 기본값이 없는 빈 속성 목록을 만듭니다. |
| 속성(속성 기본값) | 지정된 기본값을 사용하여 빈 속성 목록을 만듭니다. |
Properties 클래스의 메소드
Properties 클래스에서 일반적으로 사용되는 메서드는 다음과 같습니다.
| 방법 | 설명 |
|---|---|
| 공개 무효 로드(리더 r) | Reader 개체에서 데이터를 로드합니다. |
| 공개 무효 로드(InputStream은) | InputStream 객체에서 데이터를 로드합니다. |
| 공공 무효 loadFromXML(InputStream in) | 지정된 입력 스트림의 XML 문서가 나타내는 모든 속성을 이 속성 테이블에 로드하는 데 사용됩니다. |
| 공개 문자열 getProperty(문자열 키) | 키를 기준으로 값을 반환합니다. |
| 공개 문자열 getProperty(문자열 키, 문자열 defaultValue) | 지정된 키를 사용하여 속성을 검색합니다. |
| 공개 무효 setProperty(문자열 키, 문자열 값) | Hashtable의 put 메소드를 호출합니다. |
| 공개 무효 목록(PrintStream 출력) | 지정된 출력 스트림으로 속성 목록을 인쇄하는 데 사용됩니다. |
| 공개 무효 목록(PrintWriter 출력)) | 지정된 출력 스트림으로 속성 목록을 인쇄하는 데 사용됩니다. |
| 공개 열거형 propertyNames()) | 속성 목록에서 모든 키의 열거를 반환합니다. |
| 공개 문자열 속성 이름 설정() | 키와 해당 값이 문자열인 속성 목록에서 키 세트를 반환합니다. |
| public void store(Writer w, String comment) | 작성기 개체에 속성을 씁니다. |
| 공용 무효 저장소(OutputStream os, 문자열 주석) | OutputStream 개체에 속성을 작성합니다. |
| 공개 무효 storeToXML(OutputStream os, 문자열 주석) | XML 문서를 생성하기 위해 작성기 개체에 속성을 씁니다. |
| public void storeToXML(Writer w, 문자열 주석, 문자열 인코딩) | 지정된 인코딩을 사용하여 XML 문서를 생성하기 위해 작성기 개체에 속성을 작성합니다. |
속성 파일에서 정보를 가져오는 Properties 클래스의 예
속성 파일에서 정보를 얻으려면 먼저 속성 파일을 생성하십시오.
db.속성user=system password=oracle
이제 속성 파일에서 데이터를 읽는 Java 클래스를 만들어 보겠습니다.
Test.java import java.util.*; import java.io.*; public class Test { public static void main(String[] args)throws Exception{ FileReader reader=new FileReader('db.properties'); Properties p=new Properties(); p.load(reader); System.out.println(p.getProperty('user')); System.out.println(p.getProperty('password')); } } Output:system oracle
이제 속성 파일의 값을 변경하는 경우 Java 클래스를 다시 컴파일할 필요가 없습니다. 이는 유지 관리 문제가 없음을 의미합니다.
모든 시스템 속성을 가져오는 Properties 클래스의 예
System.getProperties() 메소드를 사용하면 시스템의 모든 속성을 얻을 수 있습니다. 시스템 속성에서 정보를 가져오는 클래스를 만들어 보겠습니다.
Test.java import java.util.*; import java.io.*; public class Test { public static void main(String[] args)throws Exception{ Properties p=System.getProperties(); Set set=p.entrySet(); Iterator itr=set.iterator(); while(itr.hasNext()){ Map.Entry entry=(Map.Entry)itr.next(); System.out.println(entry.getKey()+' = '+entry.getValue()); } } } Output: java.runtime.name = Java(TM) SE Runtime Environment sun.boot.library.path = C:Program FilesJavajdk1.7.0_01jrein java.vm.version = 21.1-b02 java.vm.vendor = Oracle Corporation java.vendor.url = http://java.oracle.com/ path.separator = ; java.vm.name = Java HotSpot(TM) Client VM file.encoding.pkg = sun.io user.country = US user.script = sun.java.launcher = SUN_STANDARD ...........
속성 파일을 생성하기 위한 Properties 클래스의 예
이제 속성 파일을 생성하는 코드를 작성해 보겠습니다.
Test.java import java.util.*; import java.io.*; public class Test { public static void main(String[] args)throws Exception{ Properties p=new Properties(); p.setProperty('name','Sonoo Jaiswal'); p.setProperty('email','[email protected]'); p.store(new FileWriter('info.properties'),'Javatpoint Properties Example'); } } 생성된 속성 파일을 살펴보겠습니다.
정보.속성#Javatpoint Properties Example #Thu Oct 03 22:35:53 IST 2013 [email protected] name=Sonoo Jaiswal