일반 직접 작성한 PropertiesUtil.java

황제낙엽 2020.07.21 12:53 조회 수 : 806

sitelink1  
sitelink2  
sitelink3  
sitelink4  
sitelink5  
sitelink6  

package util;

 

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.Reader;

import java.util.HashMap;

import java.util.Map;

import java.util.Properties;

 

public class PropertiesUtil {

    

    private final static String DEFAULT_PROPERTIES_PATH = "program.properties";

    public static String USER_PROPERTIES_PATH = null;

 

    public static String getDefaultPropertiesPath() {

        return DEFAULT_PROPERTIES_PATH;

    }

    

    public static boolean existsPropertiesFile() {

        File f = new File(USER_PROPERTIES_PATH);

        return f.exists();

    }

    

    public static String get(String key) {

 

        // ClassLoader.getResourceAsStream("some/pkg/resource.properties");

        // Class.getResourceAsStream("/some/pkg/resource.properties");

        // ResourceBundle.getBundle("some.pkg.resource");

        String value = null;

        InputStream is = null;

        try {

            is = (USER_PROPERTIES_PATH != null) ? new FileInputStream(USER_PROPERTIES_PATH) : new FileInputStream(DEFAULT_PROPERTIES_PATH);

            Reader reader = new InputStreamReader(is, "UTF-8");

            Properties p = null;

            try {

                p = new Properties();

                p.load(reader);

                value = p.getProperty(key);

            } finally {

                reader.close();

            }

        } catch (FileNotFoundException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        } finally {

            try {

                if (is != null) is.close();

            } catch (IOException e) {}

        }

        return value;

    }

 

    /**

     * 프로퍼티 파일에 사용자 값을 넣는다.

     */

    public static void putPropertie(Map<String, String> paramMap) throws FileNotFoundException, IOException {

        // 프로퍼티 파일 경로 key

        Properties proper = null;

        FileOutputStream output = null;

        try {

            String comment = paramMap.get("properties.comment").toString();

            output = new FileOutputStream((USER_PROPERTIES_PATH != null) ? USER_PROPERTIES_PATH : DEFAULT_PROPERTIES_PATH);

            proper = new Properties();

            proper.putAll(paramMap);

            proper.store(output, comment);

        } catch (FileNotFoundException fnfe) {

            throw new FileNotFoundException("properties 파일을 찾을수 없습니다 : "+fnfe);

        } catch (IOException ioe) {

            throw new IOException("putPropertie Exception!", ioe);

        } finally {

            try {

                if (output != null)

                    output.close();

            } catch (IOException e) {

                throw e;

            }

        }

    }

 

    /**

     * @param args

     */

    public static void main(String[] args) throws Exception {

        

        PropertiesUtil.USER_PROPERTIES_PATH = "F:\\TOBE_TFS_WIT\\TOBE_TFS_WIT.PROPERTIES";

        

        // 테스트 코드

        Map<String, String> paramMap = new HashMap<String, String>();

        paramMap.put("properties.comment", "UPDATE_WIT");

        paramMap.put("name", "홍길동");

        paramMap.put("age", "31");

        paramMap.put("phone", "0111234567");

        PropertiesUtil.putPropertie(paramMap);

 

 

        System.out.println(PropertiesUtil.getDefaultPropertiesPath());

        System.out.println(PropertiesUtil.get("name"));

    }

}

 
번호 제목 글쓴이 날짜 조회 수
306 nashorn ScriptEninge Test Project (war) file 황제낙엽 2021.05.19 867
305 람다(Lambda)와 함수형 인터페이스 황제낙엽 2021.05.10 988
304 javax.script.ScriptEngine 관련 참고사항 (sample java 포함) 황제낙엽 2021.05.09 1117
303 Java Scripting API: GraalVM 적용해보기 황제낙엽 2021.05.09 678
302 Java Scripting API: 바인딩과 스크립트 컨텍스트 그리고 실행 성능 개선 file 황제낙엽 2021.05.09 603
301 Java Scripting API: 자바에서 자바스크립트의 함수를 호출할 수 있을까? file 황제낙엽 2021.05.09 1086
300 Java에서 Nashorn JavaScript 엔진 사용 file 황제낙엽 2021.05.09 966
299 [JSP] 파일 다운로드 테스트 file 황제낙엽 2021.04.12 3978
298 ResultSet 을 순회하기 전에 사이즈 구하기 황제낙엽 2021.01.14 670
297 ResultSet 의 사이즈로 조회 결과가 있는지 확인 황제낙엽 2021.01.14 691
296 지정한 일자보다 하루 뒤로 설정하기 황제낙엽 2021.01.14 587
295 for, while 등의 loop구문에서 sleep하기 황제낙엽 2020.12.04 807
294 미디어 파일의 metadata를 읽자 (metadata-extractor) file 황제낙엽 2020.08.30 1507
293 [HttpURLConnection] Authorization 헤더를 넣어 GET Request 황제낙엽 2020.08.12 1490
» 직접 작성한 PropertiesUtil.java 황제낙엽 2020.07.21 806
291 [Online Book] manning사의 making java groovy 황제낙엽 2020.06.19 1042
290 자바(JAVA) 어노테이션(Annotation) 황제낙엽 2020.04.10 574
289 [AWS, 웹 프로젝트] AWS+MySQL+SpringFrameWork5+JAVA8+ React+Gradle+Webpack+GIT+Jenkins file 황제낙엽 2020.04.08 969
288 Runtime 클래스의 exec() 함수 실행시의 실행 결과 수집 황제낙엽 2020.03.26 808
287 SQLite JDBC Driver 황제낙엽 2020.02.25 14756