Please Enable JavaScript!
Gon[ Enable JavaScript ]

properties 를 절대경로로 값을 읽거나 수정하는 기능

자바(JAVA)
반응형


public
String getProperties(String keyname){

   String tempValue = "";

   String PROPERTIES_FILE;

   try {

     // Properties 저장되어있는 로컬절대경로 주소를 알아오는함수

     PROPERTIES_FILE = getPath();

     Properties props = new Properties();

     // 절대경로의 위치를 잡아서 Properties 파일을 로딩한다.

     FileInputStream fis = new FileInputStream(PROPERTIES_FILE);

     // 상대경로의 위치를 잡아서 Properties 파일을 로딩한다.

     // InputStream fis = getClass().getResourceAsStream(PROPERTIES_FILE)

     props.load(new java.io.BufferedInputStream(fis));

     tempValue = new String(props.getProperty(keyname)

                            .getBytes("ISO-8859-1"), "euc-kr");

   } catch (FileNotFoundException e) {

        e.printStackTrace();

   } catch (UnsupportedEncodingException e) {

        e.printStackTrace();

   } catch (IOException e) {

        e.printStackTrace();

   }

   return tempValue;

}
public
void setProperties(String keyname, String value){

   try {

      String PROPERTIES_FILE = getPath();

      Properties props = new Properties();

      FileInputStream fis = new FileInputStream(PROPERTIES_FILE);

      props.load(new java.io.BufferedInputStream(fis));

      props.setProperty(keyname, value);

      props.store(new FileOutputStream(PROPERTIES_FILE), "");

   } catch (FileNotFoundException e) {

      e.printStackTrace();

   } catch (IOException e) {

      e.printStackTrace();

   }
}


//
현재클래스의 절대경로 위치로 프로젝트내에 properties 경로를 끼워맞춘다.

private String getPath(){

   String totalPath = "";

   try {

      String sapPath = "properties/common/SAP.properties";

      File mapLoader = new File(this.getClass().getResource.
                       ("demon.common.CommUtil").getPath());
      String classPath = mapLoader.getParent();
      // classes 폴더명의 위치를 알아낸다
      int positionNo = classPath.indexOf("classes");
      classPath = classPath.substring(0, positionNo);                    

      // 현재 클래스파일의 위치를 기준으로 properties 경로를 맞춘후 파일객체를 통해서 로컬경로를 알아온다.

      File totalPathFile = new File(classPath + sapPath);

      totalPath = totalPathFile.getPath();

   } catch (RuntimeException e) {

      e.printStackTrace();

   }

   return totalPath;

}

반응형
Posted by 녹두장군1
,