하다11
1k
2019-01-08 14:01:02 작성 2019-01-08 14:01:23 수정됨
5
245

java] conf 파일에서 특정 변수만 값 수정.


안녕하세요. 스프링 프로젝트 인데요.


conditions.conf 설정파일에 엄청나게 많은 변수 약 30개정도? 가 저장되어 있는데요.

파일내용에는 변수만 있는게 아니라 변수에 대한 주석까지 적혀있습니다.



이 중 check 라는 변수의 값을 0 또는 1 로  때마다 변경해야 하는 로직이 추가되었습니다.



Properties props = new Properties();
FileInputStream is = null;
is = new FileInputStream(configPath);
check = props.getProperty("check");


값만 읽을땐 이렇게 해서 사용했는데


주석을 지우지 않으면서 즉, 기존내용은 그대로 두고

딱 check의 변수만 0, 1로 변경해주고 싶으면 어떻게 해야하나요?


props.setProperty("check", "0");

함수가 있길래 사용해 봤는데... 막상 파일에 값이 안바뀌네요. ㅠ

setProperty 함수는 props의 객체의 check변수만 바꿔주는 듯 하고..

바뀐 props를 새로 파일로 써줘야 할 것 같은데 그렇게하면

기존에 있던 주석이 다 지워질거 같아요 ㅠㅠ

0
0
  • 답변 5

  • 20170923
    1k
    2019-01-08 14:06:09

    props.setProperty("check", "0");로 변경하시면 props의 check값이 변경되는 것이지, check값이 변경되는 것이 아닙니다.



    check = 1

    또는

    props.setProperty("check", "0"); 실행 후

    check = props.getProperty("check");

    이런식으로 하시면 됩니다.

    1
  • 하다11
    1k
    2019-01-08 14:13:30

    네 그런듯 합니다. ㅜㅜ

    /root/conditions.conf  파일경로에 있는 파일의 값을 직접적으로 수정하고 싶은데...

    check = props.getProperty("check");  이것도 자바변수라서요 ㅠㅠ 파일을 직접수정하고싶습니다.

    0
  • 20170923
    1k
    2019-01-08 14:20:59 작성 2019-01-08 14:21:53 수정됨

    혹시 자바 -> prop파일 -> check의 값 변경을 하고싶으신건가요?

    저는 변수 값 변경하고 싶다고 하셔서

    check = props.getProperty("check");

    bold 입힌 저 값을 변경하고 싶다고 이해했는데

    0
  • 포포핀
    465
    2019-01-08 14:23:18

    java.util.Properties.store(OutStream out, String comment)

    메소드를 써보세요

    0
  • 하다11
    1k
    2019-01-08 14:38:36

    20170923 // 제가 말한 check변수는 실제 파일의 check변수를 말한거였습니다 ㅎ

    실제 파일의 check만 값을 변경하고자 하는것이 질문의 의도였습니다. ㅜㅜ 

    포포핀// 한번 시도해보겠습니다!

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.