자바 Properties 클래스에서 StoreToXML 로 저장할때 깨지는 문제..
글쓴이: nikk / 작성시간: 목, 2009/06/11 - 9:24오후
안녕하세요??
따로 저장해서 사용해야 될 값이 있어서 프로퍼티를 사용하게 되었습니다.
자바의 Properties 클래스를 이용해서 값을 파일로 저장해 놓고 사용하려 하는데요.
윈도우에서 대충 테스트해보고 리눅스에 그대로 옮겼는데
대충 돌아가는것 같더니 생성된 xml 파일을 보면 파일이 엄청 지저분해져있습니다.
예를 들어 다음과 같은 XML 이 있다면
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>new xml properties</comment> <entry key="myValue">10</entry> </properties>
myValue 의 값을 5로 바꾸고 싶다면
setProperty("myValue", "5") 메소드로 값을 바꾼후에 FileOutputStream os = new FileOutputStream(file); properties.storeToXML(os, "comment..", "UTF-8");
로 저장을 하면
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>new xml properties</comment> <entry key="myValue">5</entry> </properties>
이렇게 myValue의 값만 바뀌어 있습니다. 윈도우에서 테스트 할때는요..
근데 리눅스에서 똑같은 코드를 사용했는데 위에 깔끔하던 XML이.....
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <entry key="<properties>"/> <entry key="<!DOCTYPE">properties SYSTEM "http://java.sun.com/dtd/properties.dtd"></entry> <entry key="<entry">key="myVal">10</entry></entry> <entry key="</properties>"/> <entry key="<?xml">version="1.0" encoding="UTF-8"?></entry> <entry key="myVal">10</entry> </properties>
이런식으로 <, > 같은 특수문자가 나오고 태그가 막 중복되어 버리네요.
리눅스만 유독 이런 이유가 있나요? 아니면 제가 뭔가 빼먹은 중요한 사항이 있는지요...
아, 참고로 프로퍼티를 사용하는 클래스를 JSP 에서 import 해서 사용하고 있습니다.
그럼 좋은 하루 되세요~~
Forums:
리눅스라고 그렇지는
리눅스라고 그렇지는 않습니다.
결과를 보면 xml 로 해석한 것이 아니라 일반 property 파일이라고 읽어들인 것처럼 보입니다.
읽어들일 때 loadFromXML 을 사용하지 않았을 가능성이 있습니다.
태그 중복은 xml 파일을 만들때 바꾸어졌을 것으로 보입니다.
--
말할 수 있는 것은 분명하게 말해질 수 있다;
말해질 수 없는 것에 대해서는 침묵해야한다.
논리철학논고 - 루드비히 비트겐슈타인
--
말할 수 있는 것은 분명하게 말해질 수 있다;
말해질 수 없는 것에 대해서는 침묵해야한다.
논리철학논고 - 루드비히 비트겐슈타인
댓글 달기