Manejo de Properties en JAVA
Estimados amigo de JavaMéxico:
Le quiero compartir un código que realice para el manejo de Properties en Java, esto es por la necesidad que surge el tener una conexión mas capacitada para guardar y leer los properties, aunque mi modelo original es a 3 capas les paso la funcionalidad y es pero que sea de ayuda y aporte a toda la comunidad.
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class ConectaProperties{
/**
* Metodo que guarda la informacion en un propertie solo darle el nombre no
* la extension, guarda el propertie y lo sobre escribe
*
* @param prop Nombre de la propiedad
* @param nombre nombre del propertie a llamar
* @param valor valor asignado al propertie
*/
public void guardaProperties(String prop, String nombre, String valor) {
Properties dbProps = new Properties();
// Declaramos un InputStream para recibir los datos
InputStream inputStream = null;
String listo = "";
URL url = ConectaProperties.class.getResource("/propFormulas.properties");
String path = url.getPath();
path = path.substring(1, path.length());
path = path.replace("%20", " ");
try {
//Cargamos el archivo
inputStream = new FileInputStream(path);
dbProps.load(inputStream);
inputStream.close();
//obtenemos los valores del archivo y los asignamos a las variables
listo = dbProps.getProperty(nombre);
} catch (Exception e) {
System.out.println("El archivo NO ha sido cargado exitosamente");
}
dbProps.setProperty(nombre, valor);
FileOutputStream os = null;
try {
os = new FileOutputStream(path);
dbProps.store(os, null);
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
try {
if (os != null) {
os.close();
}
} catch (IOException ex) {
Logger.getLogger(ConectaProperties.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
/**
* Metodo que lee el valor por medio de un ResourceBundle solo es necesario
* el nombre sin la extencion este libera el cache
*
* @param nombreProp nombre del propertie
* @return Una coleccion con todos los valores del
*/
public Map<String, String> leerProperties(String nombreProp) {
Map<String, String> valores = new TreeMap<String, String>();
ResourceBundle rb = ResourceBundle.getBundle(nombreProp);
Enumeration<String> keys = rb.getKeys();
if (keys != null) {
while (keys.hasMoreElements()) {
String key = keys.nextElement();
valores.put(key, rb.getString(key));
}
}
ResourceBundle.clearCache();
return valores;
}
}
- Inicie sesión o regístrese para enviar comentarios
Comentarios recientes
hace 10 semanas 3 días
hace 10 semanas 3 días
hace 10 semanas 3 días
hace 34 semanas 6 días
hace 36 semanas 1 día
hace 42 semanas 6 días
hace 1 año 35 semanas
hace 2 años 47 semanas
hace 2 años 51 semanas
hace 3 años 6 semanas