본문 바로가기
JAVA

Java의 properties - load

by KkingKkang 2023. 2. 1.
  • 일반적으로 컴파일된 코드 외부에서 간단한 매개변수를 키-값-쌍으로 저장하기 위해 사용
  • java.util.Properties

 

.properties 파일에서 키-값 쌍을 로드하는 예제

app.properties ▼

version = 1.0
name = TestApp
date = 2016-11-12

 

catalog ▼

c1 = files
c2 = images
c3 = videos

- .properties로 파일 명을 짓는게 좋으나, 필수는 아님

Properties instance 로 쉽게 load할 수 있다.

String rootPath = 
Thread.currentThread().getContextClassLoader().getResource("").getPath();
String appConfigPath = rootPath + "app.properties";
String catalogConfigPath = rootPath + "catalog";

Properties appProps = new Properties();
appProps.load(new FileInputStream(appConfigPath));

Properties catalogProps = nnew Properties();
catalogProps.load(new FileInputStream(catalogConfigPath));

String appVersion = appProps.getProperty("version");
assertEquals("1.0", appVersion);

assertEquals("files", catalogProps.getProperty("c1"));

 

XML 파일에서 로드

properties 파일 외에도 properties 클래스는 특정 DTD 사양을 준수하는 XML 파일을 로드할 수 있음

- DTD란? 문서 타입 정의는 XML 문서의 구조 및 해당 문서에서 사용할 수 있는 적법한 요소와 속성을 정의함.

- 문법 : <!DOCTYPE 루트요소 DTD식별자 [ 선언1 선언2 ... ]

icons.xml

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properteis.dtd">
<properties>
     <comment>xml example</comment>
     <entry key="fileIcon">icon1.jpg</entry>
     <entry key="imageIcon">icon2.jpg</entry>
     <entry key="videoIcon">icon3.jpg</entry>
</properties>

 

로드

String rootPath = 
Thread.currentThread().getContextClassLoader().getResource("").getPath();
String iconConfigPath = rootPath + "icons.xml";
Properties iconProps = new Properties();
iconProps.loadFromXML(new FileInputStream(iconConfigPath));

assertEquals("icon1.jpg",iconProps.getProperty("fileIcon"));

 

 

반응형

'JAVA' 카테고리의 다른 글

자바 정규표현식 Pattern, Matcher  (0) 2022.11.11

댓글