La solución de hoat4 es muy elegante y sencilla. Funciona para todos los archivos ini cuerdos . Sin embargo, he visto muchos que tienen caracteres de espacio sin escape en la clave .
Para solucionar esto, he descargado y modificado una copia de java.util.Properties
. Aunque esto es un poco poco ortodoxo y de corto plazo, las modificaciones reales eran solo unas pocas líneas y bastante simples. Presentaré una propuesta a la comunidad de JDK para incluir los cambios.
Añadiendo una variable de clase interna:
private boolean _spaceCharOn = false;
Yo controlo el procesamiento relacionado con la exploración del punto de separación clave / valor. Reemplacé el código de búsqueda de caracteres de espacio con un pequeño método privado que devuelve un booleano según el estado de la variable anterior.
private boolean isSpaceSeparator(char c) {
if (_spaceCharOn) {
return (c == ' ' || c == '\t' || c == '\f');
} else {
return (c == '\t' || c == '\f');
}
}
Este método se utiliza en dos lugares dentro del método privado load0(...)
.
También hay un método público para activarlo, pero sería mejor usar la versión original de Properties
si el separador de espacios no es un problema para su aplicación.
Si hay interés, estaría dispuesto a publicar el código en mi IniFile.java
archivo. Funciona con cualquier versión de Properties
.