자바 properties 파일 읽 는 방법
5638 단어 자바읽 기properties
접근 할 인터페이스 주소 등 자주 사용 하 는 설정 을 properties 파일 에 추가 합 니 다.자바 류 에 직접 쓰 는 것 보다 좋 은 점 은:
해당 설정 을 수정 해 야 할 때 properties 파일 을 직접 수정 하고 tomcat 를 다시 시작 하면 됩 니 다.이 설정 을 참조 한 자바 파일 을 다시 컴 파일 하 는 것 을 피 할 수 있 고 프로젝트 의 유지 에 도 편리 합 니 다.
방식 1
spring 의 도구 류 Properties LoaderUtils 를 통 해 properties 파일 에 대한 분석 을 실현 합 니 다.
필요 한 jar 패키지:spring 의 핵심 jar 패키지,spring-core-버 전 번호.jar
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import org.springframework.core.io.support.PropertiesLoaderUtils;
/**
* spring Properties
* @explain Spring PropertiesLoaderUtils
* : , ,
* @author Marydon
* @creationTime 2018 5 23 9:58:59
* @version 1.0
* @since
* @email [email protected]
*/
public class PropertiesUtils {
/**
* properties
* @param fileName properties
* @explain
* 1. properties , , Map;
* 2. properties , , Map;
* 3. ,
* @return
*/
public static Map<String, String> readProperties(String fileName) {
Map<String, String> resultMap = new HashMap<String, String>();
try {
Properties props = PropertiesLoaderUtils.loadAllProperties(fileName);
for (Object key : props.keySet()) {
resultMap.put(key.toString(), props.get(key).toString());
}
} catch (IOException e) {
e.printStackTrace();
}
return resultMap;
}
/**
* @param args
*/
public static void main(String[] args) {
// Map map = readProperties("base/web/imageInfo/fileRootDirectories.properties");
Map map = readProperties("fileRootDirectories.properties");
for (Object key : map.keySet()) {
System.out.println(key.toString() + "=" + map.get(key).toString());
}
//
// fileRootPath=uploadFiles
}
}
이런 방식 의 단점 은:호출 할 때마다 대응 하 는 properties 파일 을 다시 처리 해 야 하기 때문에 프로젝트 가 시 작 될 때 이 파일 을 메모리 에 불 러 올 수 있 습 니 다.
방식 2
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* properties
* @description
* , , , ,
* @author: Marydon
* @date: 2020 07 13 0013 16:04
*/
public class PropertyUtils_old {
private static Logger logger = LoggerFactory.getLogger(PropertyUtils_old.class);
// properties
private static final String FILE_NAME = "bill.properties";
// properties
private static Properties props;
// : ,
static {
//
loadPropertiesFile();
}
synchronized static private void loadPropertiesFile() {
logger.debug(" properties .......");
props = new Properties();
InputStream in = null;
try {
// : properties ( )
in = PropertyUtils_old.class.getClassLoader().getResourceAsStream(FILE_NAME);
// : properties ( /)
// in = PropertyUtils.class.getResourceAsStream("/bill.properties");
props.load(in);
} catch (NullPointerException e) {
logger.error("bill.properties !");
} catch (IOException e) {
logger.error(" IOException!");
} finally {
try {
if (null != in) {
in.close();
}
} catch (IOException e) {
logger.error("bill.properties ");
}
}
logger.info(" properties ...........");
logger.info("properties :" + props);
}
/*
* properties key value
* @date: 2020 07 13 0013 16:17
* @param: key
* @return: java.lang.String
*/
public static String getProperty(String key) {
if (null == props) {
loadPropertiesFile();
}
return props.getProperty(key);
}
/*
* properties key value
* @date: 2020 07 13 0013 16:17
* @param: key
* @param: defaultValue
* @return: java.lang.String
*/
public static String getProperty(String key, String defaultValue) {
if (null == props) {
loadPropertiesFile();
}
return props.getProperty(key, defaultValue);
}
}
테스트
public static void main(String[] args) {
System.out.println(getProperty("bill.czInterfaceAddress"));
}
방식 1 도 방식 2 의 형식 에 따라 1 차 로 딩,영구적 으로 사용 하 는 효 과 를 얻 을 수 있다.
이상 은 자바 가 properties 파일 의 상세 한 내용 을 어떻게 읽 는 지 입 니 다.자바 가 properties 파일 을 읽 는 것 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.