Qué hace esta herramienta
El anidamiento pasa a puntos, las listas a índices:
db:
host: db.example.com
port: 5432
hosts:
- a
- b
db.host=db.example.com
db.port=5432
hosts[0]=a
hosts[1]=b
La forma [i] es la convención de Spring, la que espera la mayoría de los lectores.
El escape es todo el trabajo
Un archivo .properties es engañosamente simple, y tres de sus reglas se comen datos en silencio.
Un valor que empieza por espacio. Properties.load salta los blancos tras el separador, así que clave= x se relee x. El primer espacio se escapa —clave=\ x— y el valor sobrevive. Los espacios finales se conservan tal cual.
Una clave que empieza por # o !. Esa línea es un comentario. La entrada entera, clave y valor, desaparece al leer. Esos dos caracteres se escapan cuando abren una clave.
=, : y los espacios dentro de una clave también se escapan, y cada barra invertida igual. Un salto de línea en un valor pasa a \n, una tabulación a \t.
Dos claves que se aplanan al mismo nombre
"a.b": 1
a:
b: 2
Ambas dan a.b. El formato no puede distinguirlas y Properties.load se queda con la última: uno de tus dos valores habría desaparecido, sin nada que lo dijera.
La conversión se detiene y nombra la clave. Es el único caso en que esta herramienta rechaza en vez de convertir, y es el caso en que convertir mentiría.
No hay tipos
Todo en un archivo .properties es texto. true vuelve como "true", 42 como "42", y un null como valor vacío. Tu lector decide qué significan: Boolean.parseBoolean, Integer.parseInt, y una decisión sobre qué quiere decir vacío.
Una palabra sobre la codificación
La salida es texto UTF-8, acentos incluidos. Es lo que lee el Java moderno y lo que siempre ha leído Properties.load(Reader).
Pero Properties.load(InputStream) —la llamada más antigua y más frecuente— lee ISO-8859-1 y convertirá café en galimatías. Si ese es tu lector, cambia a la sobrecarga Reader o escapa los caracteres no ASCII como \uXXXX antes de enviar el archivo.
Privado por diseño
Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.