JAVA 마법 당:. properties 프로필 읽 기
8209 단어 properties
자바 프로젝트 에서 log4j, 데이터베이스 연결 등 설정 정 보 는 일반적으로. properties 파일 에 쓰 여 있 습 니 다. 이 설정 정 보 를 어떻게 읽 습 니까?다음은 관련 방법 을 기록 하여 나중에 찾 아 볼 수 있 도록 하 겠 습 니 다.
2. properties 파일
파일 의 하 나 를 설정 합 니 다. 내용 은 키 쌍 으로 존재 하 며, 키 쌍 마다 한 줄 을 독점 합 니 다. \ #번 호 는 줄 주석 의 시작 표지 로 서 중국어 주석 은 자동 으로 유 니 코드 인 코딩 을 진행 합 니 다.예시:
# ip and port of server socket
ip=127.0.0.1
port=9999
# error message
msg=I'm sorry, bye bye!
상기 내용 이 config. properties 파일 에 저장 되 고 bin 디 렉 터 리 결 과 는 다음 과 같다 고 가정 합 니 다.
bin
|-- main
|-- Demo.class
|-- config.properties
후속 장절 의 예 는 상술 한 내용 을 목표 대상 으로 조작 할 것 이다.
통과 속성 대상 조작 하 다.
속성 읽 기, 예제:
public class Demo{
public static void main(String[] args){
Properties props = new Properties();
InputStream in = Demo.class.getResourceAsStream("../config.properties");
// ( ), bin
//InputStream in = new FileInputStream("./config.properties");
props.load(in);
in.close();
//
String key = "ip";
String ip = props.getProperty(key);
// ,
Set keys = props.keySet();
for (Interator it = keys.iterator(); it.hasNext();){
String k = it.next();
System.out.println(k + ":" + props.getProperty(k));
}
// ,
Enumeration en = props.propertyNames();
while (en.hasMoreElements()){
String k = en.nextElement();
System.out.println(k + ":" + props.getProperty(k));
}
}
}
1. 통과 Demo.class.getResourceAsStream("../config.properties"); 프로필 을 읽 습 니 다. 프로필 의 상대 경 로 는 클래스 파일 이 있 는 디 렉 터 리 를 현재 디 렉 터 리 로 합 니 다.
2. 통과 new FileInputStream("./config.properties"); 프로필 을 읽 습 니 다. 파일 의 상대 경 로 를 작업 디 렉 터 리 로 설정 할 수 있 습 니 다. System.getProperty("user.dir") 현재 디 렉 터 리 로 작업 디 렉 터 리 가 져 오기)
메모: 상기 두 가지 방식 으로 가 져 온 프로필 은 모두 캐 시 되 지 않 았 습 니 다.매번 프로필 을 다시 불 러 옵 니 다.
속성 쓰기, 예시:
Properties props = new Properties();
InputStream in = getClass().getResouceAsStream("properties ");
props.load(in);
OutputStream output = new FileOutputStream("properties ");
props.setProperty("ip", "10.248.112.123"); //
props.store(output, "modify ip value"); // store(OutputStream output, String comment)
output.close()
통과 리 소스 번 들 대상 조작 하 다.
이 방식 을 통 해 프로필 만 읽 을 수 있 을 뿐 쓰기 동작 을 할 수 없습니다.예시:
// ResourceBundle rb = ResourceBundle.getBundle(" ( )");
ResourceBundle rb = ResourceBundle.getBundle("config");
try{
String name = rb.getString("name");
}
catch(MissingResourceException ex){
메모: 상기 방식 은 설정 파일 정 보 를 캐 시 합 니 다. 나중에 읽 을 때 캐 시 에 있 는 내용 을 읽 습 니 다. 이 기간 에 설정 내용 을 수정 하면 실시 간 으로 동기 화 할 수 없습니다.
리 소스 번 들 은 두 개의 하위 클래스 인 ListResource Bundle 과 Property Resource Bundle 이 있 는데, properties 파일 을 읽 을 때 실제로는 Property Resource Bundle 을 사용 하여 처리한다.
별말:
리 소스 번 들 은 주로 국제 화 와 현지 화 문 제 를 해결 하 는 데 쓰 인 다.자원 이름 을 통 해 각 언어 와 방언 정 보 를 정의 합 니 다. 프로그램 이 실 행 될 때 현재 현지 화 정 보 를 얻 고 현지 화 정보 에 따라 해당 하 는 자원 을 불 러 와 현지 화 를 완성 합 니 다.
자원 이름 규칙:
//
MyResource
//
MyResource_en
// 、
MyResource_en_US
대응 하 는 자바 코드:
// ResourceBundle ( MyResource_zh_CN), MyResource_zh, MyResource。
ResourceBundle rb = ResourceBundle.getBundle("MyResource", Locale.getDefault())
총화
물론 방식 은 이것 뿐만 이 아 닙 니 다. 앞으로 계속 보충 하 세 요!
오리지널 을 존중 합 니 다. ^_^뚱보 존
참고
http://www.cnblogs.com/panjun-Donet/archive/2009/07/17/1525597.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Spring] properties 파일에 정의된 값 가져오기실시간 강의 수업 중 Admin key에 관련된 이야기가 나와 1,2차 Python, Flask 프로젝트에서 DB등 보완이 필요한 값들에 대해서 다른 곳에 따로 저장하고 변수에는 Path 설정해주고 github에 올...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.