java properties 파일 전송 맵 데이터 읽 기

       소량의 데이터 의 경우 @ Value () 를 사용 하여 설정 항목 을 가 져 올 수 있 습 니 다.그러나 대량의 데 이 터 를 가 져 올 때 새로운 properties 파일 을 사용 합 니 다. 프로젝트 가 시 작 될 때 파일 을 메모리 에 불 러 옵 니 다.뒤에 수시로 사용.
다음은 src/resources 아래 파일 을 가 져 오 는 코드 입 니 다.
package com.zhong.zhongdemo.service;

import org.springframework.stereotype.Component;

import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

@Component
public class MapPropertiesService {
    private static Map map = new HashMap();

    static {
        ClassLoader loader = Thread.currentThread().getContextClassLoader();

        //处理映射配置信息
        Properties mappingProperties = new Properties();
        InputStream mappingPropertiesInStream = loader.getResourceAsStream("map.properties");
        try {
            mappingProperties.load(mappingPropertiesInStream);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                mappingPropertiesInStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        Enumeration mappingPropertiesEenumeration = mappingProperties.propertyNames();
        while (mappingPropertiesEenumeration.hasMoreElements()) {
            String key = (String) mappingPropertiesEenumeration.nextElement();
            String value = mappingProperties.getProperty(key);
            map.put(key, value);
            System.out.println(key +"---" +value);
        }
    }
}

이상 의 방법 을 통 해 properties 프로필 의 데 이 터 를 얻 을 수 있 습 니 다.Properties 의 loa 방법 은 기본적으로 ":"와 "="에 따라 각 줄 의 데 이 터 를 분할 합 니 다.key 와 value 값 을 얻 습 니 다.이렇게 하면 우리 가 분할 해 야 할 데이터 에 ':' 와 '=' 이 포함 되 어 있 으 면 분할 에 오류 가 발생 할 수 있다.이 문 제 를 해결 하 는 방법 은 '\' 를 이용 하여 현재 의 ':' 와 '=' 을 나타 내 는 것 이지 데이터 의 일부분 이지 데이터 분할 에 사용 되 는 것 이 아니다.이렇게 하면 정상 적 인 데 이 터 를 얻 을 수 있다.
다음 테스트:
예 를 들 어 저 는 map. properties 가 있 는데 그 중의 데 이 터 는 다음 과 같은 형식 입 니 다.
123:7263217=1728937:23y193
12uiydsi3\:7263217=1728937:23y193
dhfahusid=fnadjkf=fdiahfdui=hfuiadh
hudfahid\=fdaihfua=fnads=fuaisdh

테스트 코드 로 뛰 어 나 온 결 과 는 다음 과 같 습 니 다.
hudfahid=fdaihfua---fnads=fuaisdh
12uiydsi3:7263217---1728937:23y193
123---7263217=1728937:23y193
dhfahusid---fnadjkf=fdiahfdui=hfuiadh

우리 가 ":"와 "="이전에 가입 한 "\"는 효력 이 발생 한 다 는 것 을 알 수 있다.
 

좋은 웹페이지 즐겨찾기