¿Qué es el formato de archivo PROPERTIES?
Los archivos con la extensión .properties son utilizados por la tecnología Java para almacenar propiedades y parámetros de aplicación configurables. También pueden incluir cadenas para internacionalización y localización, lo que los convierte en un formato estándar para paquetes de mensajes i18n en aplicaciones Java y marcos de trabajo como Spring.
Cada línea en un archivo .properties contiene un único parámetro. Cada parámetro se almacena como un par de cadenas: la primera contiene el nombre del parámetro (llamado clave) y la segunda contiene su valor. Las claves y los valores se separan por =, :, o espacios en blanco. Las líneas que comienzan con # o ! se tratan como comentarios y el analizador las ignora. Una barra invertida final (\) al final de una línea continúa el valor en la línea siguiente.
Por defecto, los archivos .properties están codificados en ISO-8859-1 (Latin-1). Los caracteres que no son latinos deben escribirse como secuencias de escape Unicode \uXXXX, a diferencia de los archivos YAML o archivos XML, que admiten nativamente UTF-8. Java 9 introdujo el soporte para cargar archivos .properties en UTF-8 cuando se proporciona un juego de caracteres explícito.
Edición de archivos .properties
Los archivos .properties se pueden modificar libremente con cualquier editor de texto. Sin embargo, también existen herramientas más avanzadas para la edición de archivos, equipadas con funciones adicionales no admitidas por los editores de texto normales. El uso de estas herramientas permite:
- validación de datos
- creación de nuevas claves
- sincronización de nombres de claves entre archivos de configuración regional
- conversión automática bidireccional de símbolos no ASCII hacia y desde escapes
\uXXXX - integración con Eclipse
Información adicional
Se accede a los archivos .properties en las aplicaciones Java a través de la clase java.util.Properties. Normalmente se empaquetan como recursos de classpath dentro de archivos JAR o WAR y se cargan en tiempo de ejecución; no existe un directorio predeterminado fijo para ellos. El formato .ini cumple una función similar en entornos que no son Java, mientras que los archivos .env se utilizan habitualmente en despliegues modernos en contenedores.
Seguridad y protección
RIESGO: LOWUn archivo .properties es texto plano y no puede ejecutar código, por lo que abrir uno es seguro. Dos preocupaciones reales: (1) frecuentemente contienen secretos - contraseñas de bases de datos, claves de API, cadenas de conexión - así que no los pegue en herramientas en línea no confiables ni los envíe a repositorios públicos. (2) Riesgo de edición: una errata, una codificación incorrecta (guardar en UTF-8 donde se espera ISO-8859-1 puede corromper los acentos) o un carácter suelto pueden impedir que la aplicación Java se inicie. Siempre haga una copia de seguridad del original antes de cambiar un valor.
Detalles del formato
en pocas palabrasProgramas que abren archivos PROPERTIES
Detalles técnicos
especificación profunda| Codificación predeterminada | ISO-8859-1 (Latin-1) |
| Soporte UTF-8 | Disponible desde Java 9+ mediante el argumento de juego de caracteres explícito en Properties.load() |
| Caracteres no ASCII | Deben representarse como secuencias de escape Unicode \uXXXX cuando se utiliza la codificación ISO-8859-1 |
| Separador clave-valor | =, :, o espacio en blanco sin escapar - la primera aparición divide la clave del valor |
| Sintaxis de comentarios | # o ! al principio de una línea |
| Continuación de línea | Una \ final une la siguiente línea al valor actual; el espacio en blanco inicial en la línea de continuación se elimina |
| Recorte de espacios en blanco | El espacio en blanco inicial antes de las claves y entre el separador y el valor se elimina automáticamente |
| Comportamiento de claves duplicadas | Permitido por el analizador; la última definición sobrescribe silenciosamente las anteriores |
| Clase de la API de Java | java.util.Properties |
| Tipo MIME | text/plain |
| Bytes mágicos / firma | Ninguno - texto plano sin encabezado binario; identificado por la extensión del archivo y la estructura de línea clave=valor |
| Secuencias de escape admitidas | \n, \t, \r, \\, \ (espacio escapado en claves/valores), \uXXXX |
| Desarrollador / mantenedor | Sun Microsystems / Oracle (parte de la plataforma Java) |
| Despliegue común | Empaquetado como recursos de classpath dentro de archivos JAR o WAR; cargado en tiempo de ejecución a través de getResourceAsStream() |
| Adopción en el ecosistema | Utilizado por Java SE, Spring Framework, Android (legado), Apache Ant, Maven y muchas herramientas de terceros |
| Lanzado | 1996 (Java 1.0, java.util.Properties) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | docs.oracle.com |
Conversiones de PROPERTIES
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos PROPERTIES.