Me encontré con el mismo problema. Las barras diagonales /
también se escapan mediante el método store()
en Properties
.
He resuelto este problema mediante la creación de mi propia CustomProperties
clase (que se extiende java.util.Properties
) y comentando la llamada a saveConvert()
en el método customStore0()
.
Aquí es mi clase CustomProperties
:
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();
}
}
me temo que no puedes.De lo contrario, ¿cómo podrían leerse los archivos de propiedades sin confundir "dos" dos puntos y dos puntos para delimitar los valores clave? – ewernli
Crea un StringWriter, escribe el archivo de propiedades en él, pasa por el buffer línea por línea buscando '" \: "', y reemplazándolo por un simple '": "'. Esto no es bonito, pero de nuevo, lo que estás tratando de hacer tampoco es muy bonito. – dasblinkenlight
@BhavikAmbani 'Usar expresiones regulares' para ese * cómo? * ¿Dónde exactamente tienes la oportunidad de especificar una expresión regular al guardar un archivo de propiedades, y cómo sería exactamente el RE? – EJP