Las aplicaciones generalmente utilizan parámetros que requieren ser modificados una vez compilada la aplicación pero no son lo suficientemente variables como para estar dependiendo de su configuración de parte del usuario cada que se ejecuta la aplicación, estos parámetros pueden ser las credenciales de una base de datos o los puertos y direcciones ip que la aplicación pueda utilizar internamente para su funcionamiento.

Así que veremos como crear un archivo de propiedades y leer estas propiedades desde nuestra aplicación para hacer uso de esta información.

Caso de uso: Credenciales para la conexión a una base de datos. 


Lo primero que debemos hacer es crear un archivo de texto plano .properties en la carpeta raíz de nuestro proyecto con la información que deseamos utilizar.

namedatabase = testdb
port = 5050
server= mysql
username = usuario
p assword = contraseña

Una vez creado pasamos a la programación.
Properties properties = new java.util.Properties();
try {
    properties.load(new java.io.FileInputStream("test.properties"));
} catch (Exception ee) {
    System.out.println(ee.toString());
}
En donde test.properties corresponde al nombre del archivo de propiedades que creamos previamente, este puede tener un nombre al gusto del programador.

Ahora solo queda usar la información del archivo dentro de nuestra aplicación, lo cual se logra utilizando el método
.getProperty() pasando como parámetro un string con el nombre de la propiedad deseada, por ejemplo para obtener el nombre de la base de datos seria así:
.getProperty("namedatabase") lo que nos regresa como resultado el valor que contenga esa propiedad.

String nameDataBase = properties.getProperty("namedatabase");
int port = Integer.parseInt(properties.getProperty("port"));
String server = properties.getProperty("server");
String user = properties.getProperty("username");
String pass = properties.getProperty("password");
Entonces ahora podemos disponer de esta información desde su variable correspondiente y podemos probarlo de la siguiente manera.
System.out.println(String.format("%s %d %s %s %s", nameDataBase, port, server, user, pass));
A lo que obtendremos como salida:
testdb 5050 mysql usuario contraseña
Finalmente el ejemplo completo se vería así.