자바 properties 파일 읽 는 방법

1.상황 전시

접근 할 인터페이스 주소 등 자주 사용 하 는 설정 을 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 파일 을 읽 는 것 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기