sábado, 30 de julio de 2016

Uso de ficheros Properties en Java

Hola amig@s en esta ocasión les mostrare como podemos hacer uso de un archivo de propiedades en Java Properties.java
package properties;

/**
 *
 * @author ElRinconPrograues
 */
public class Properties {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Propiedades p = new Propiedades();
        if (p.existe("info")) {
            p.getProperties("info");
            System.out.println(p.toString());

        } else {
            p.crearConfiguracionSistema();
            p.getProperties("info");
            System.out.println(p.toString());
        }
    }

}
Propiedades.java
package properties;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Properties;

/**
 *
 * @author ElRinconPrograues
 */
public class Propiedades {

    private static String OS;
    private static String ARCH;
    private static String VERSION;
    private static String USER;
    private static String RUN_DIR;
    private static String USER_HOME;
    private Properties infoSistema;

    public Propiedades() {
        this.infoSistema = new Properties();
    }

    /**
     * *
     * Este metodo obtiene el contenido del archivo de propiedades
     *
     */
    public Properties getProperties(String name) {
        InputStream entrada = null;
        try {
            entrada = new FileInputStream(name + ".properties");
            //se crea una instancia a la clase Properties
            Properties propiedades = new Properties();
            //se leen el archivo .properties
            propiedades.load(entrada);
            //si el archivo de propiedades NO esta vacio retornan las propiedes leidas
            if (!propiedades.isEmpty()) {
                return propiedades;
            } else {//sino  retornara NULL
                return null;
            }
        } catch (IOException ex) {
            return null;
        } finally {
            if (entrada != null) {
                try {
                    entrada.close();
                } catch (IOException e) {
                    System.out.println(e.getMessage());
                }
            }
        }
    }

    /**
     * *
     * Este metodo guarda el archivo de propiedades
     *
     */
    public void saveProperties(String name, Properties conf) {
        OutputStream salida = null;
        try {
            salida = new FileOutputStream(name + ".properties");
            conf.store(salida, null);
        } catch (IOException io) {
            System.out.println("error al guardar el archivo properies");
        }
    }

    /**
     * *
     * Comprueba si el fichero existe
     *
     */
    public boolean existe(String name) {
        File fichero = new File(name + ".properties");
        return fichero.exists();
    }

    /**
     * *
     * borramos el fichero de propiedades
     *
     */
    public boolean borrar(String name) {
        File fichero = new File(name + ".properties");
        fichero.delete();
        return fichero.exists();
    }

    /**
     * *
     * Obtenemos los datos de nuestro sistema
     *
     */
    private static void getOS() {
        OS = System.getProperty("os.name");
        ARCH = System.getProperty("os.arch");
        VERSION = System.getProperty("os.version");
        USER = System.getProperty("user.name");
        RUN_DIR = System.getProperty("user.dir");
        USER_HOME = System.getProperty("user.home");
    }

    /**
     * *
     * crea el archivo de propiedades
     *
     */
    public void crearConfiguracionSistema() {
        getOS();
        infoSistema.put("runDir", RUN_DIR);
        infoSistema.put("user_home", USER_HOME);
        infoSistema.put("user", USER);
        infoSistema.put("arch", ARCH);
        infoSistema.put("version", VERSION);
        infoSistema.put("os", OS);
        saveProperties(OS.trim(), infoSistema);
    }

    @Override
    public String toString() {
        return "Propiedades{" + "infoSistema=" + infoSistema + '}';
    }

    /**
     * Agrega una nueva Propiedad addProperties(llave,valor)
     */
    public void addProperties(String key, String value) {
        infoSistema.put(key, value);
    }

    /**
     * Elimina una Propiedad
     */
    public void removeProperties(String key) {
        infoSistema.remove(key);
    }

    /**
     * remplaza el valor de una Propiedad
     */
    public void replaceProperties(String key, String value) {
        infoSistema.replace(key, value);
    }
}

Descargar el código: Dropbox Mega