properties : Map계열의 컬렉션
- 키 + 밸류 세트로 저장
- HashMap과의 차이점 : properties에는 key 값도 String, value도 String으로 담는다
Properties prop = new Properties();
Prop[키 + 밸류] => 스트링으로 추가해보자
1. setProperty(String key, String value)
prop.setProperty("List", "ArrayList");
prop.setProperty("Set", "HashSet");
prop.setProperty("Map", "HashMap");
prop.setProperty("Map", "Properties");
System.out.println(prop);
// Map에 value 값은 중복이 되도 괜찮지만 key 값은 중복이 있음 안 되서 덮어쓰기
// 저장 순서는 유지가 안 됨
// key 값 중복시 덮어 씌여짐
{Set=HashSet, List=ArrayList, Map=Properties}
2. getProperty(String key) : String
System.out.println(prop.getProperty("List")); = ArrayList (List의 value 값)
System.out.println(prop.getProperty("바보")); = null
// 없는 키 값 입력 시 null 값 나옴
3. store(OutputStream os, String comments)
: Properties에 담겨 있는 key-value 값을 파일로 출력
try {
prop.store(new FileOutputStream("test.properties"), "perperties Test");
prop.storeToXML(new FileOutputStream("test.xml"), "properties Test");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Properties prop = new Properties();
try {
// load(InputStream is)
// prop.load(new FileInputStream("test.properties"));
// loadFromXMl(InputStream is)
prop.loadFromXML(new FileInputStream("test.xml"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(prop);
/*
* *.properties 를 사용하는 경우
* 프로그램 상에 필요한 기본 환경설정 관련한 문구를 기술하는 경우
* => 모두 문자열이기 때문에 개발자가 아닌 일반인 관리자가 해당 문서를 파악해서 수정하기 쉽다.
*
* *.xml 파일의 특징
* 프로그래밍 언어들간에 있어서 호환이 쉽다
*
*/