logo

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