나는 동일한 문제를 겪었습니다. 슬래시 /
도 에 store()
메서드로 이스케이프 처리됩니다.
나는 내 자신의
CustomProperties
클래스 (
java.util.Properties
를 확장)를 생성하고
customStore0()
방법
saveConvert()
에 호출을 주석하여이 문제를 해결했다. 난 당신이 할 수없는 두려움
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Date;
import java.util.Enumeration;
import java.util.Properties;
public class CustomProperties extends Properties {
private static final long serialVersionUID = 1L;
@Override
public void store(OutputStream out, String comments) throws IOException {
customStore0(new BufferedWriter(new OutputStreamWriter(out, "8859_1")),
comments, true);
}
//Override to stop '/' or ':' chars from being replaced by not called
//saveConvert(key, true, escUnicode)
private void customStore0(BufferedWriter bw, String comments, boolean escUnicode)
throws IOException {
bw.write("#" + new Date().toString());
bw.newLine();
synchronized (this) {
for (Enumeration e = keys(); e.hasMoreElements();) {
String key = (String) e.nextElement();
String val = (String) get(key);
// Commented out to stop '/' or ':' chars being replaced
//key = saveConvert(key, true, escUnicode);
//val = saveConvert(val, false, escUnicode);
bw.write(key + "=" + val);
bw.newLine();
}
}
bw.flush();
}
}
:
여기 내
CustomProperties
클래스입니다.그렇지 않으면, 어떻게 "콜론"을 혼동하지 않고 속성 파일을 다시 읽을 수 있고 콜론은 키 값을 구분하는 데 사용할 수 있습니까? – ewernliStringWriter를 만들고, 속성 파일을 작성하고,''\ : "'을 찾기 위해 줄 단위로 버퍼를 이동하여 하나의':"'로 대체하십시오. 이것은 꽤 아니지만, 또 다시 당신이하려고하는 것은 너무 예쁘지 않습니다. – dasblinkenlight
@BhavikAmbani '* 정규 표현식 사용'? * 정확하게 특성 파일을 저장할 때 정규 표현식을 지정할 기회를 얻었습니까? RE는 정확히 어떤 모양입니까? – EJP