Atom Blog

Mostrando las entradas con la etiqueta archivo. Mostrar todas las entradas
Mostrando las entradas con la etiqueta archivo. Mostrar todas las entradas

Serializacion de Objetos


Como ya sabemos Java cuenta con un mecanismo que permite escribir o leer un objeto completo de un archivo, conocido como: serializacion de objetos.

Un objeto serializado es un objeto que se presenta como una secuencia de bytes, la cual incluye datos del objeto, asi como la informacion acerca del tipo de objeto y los tipos de datos almacenados en el mismo.

Como Crear Archivo Log en Java

Mostraremos un ejemplo simple de como crear un archivo log (tipo de registro o historial) de los sucesos que ocurren en el programa, se guardan con la fecha y hora del evento.

Primero necesitaremos importar el paquete Calendar, que se encargar de darnos la fecha y la hora.

import java.util.Calendar;

public class archivoLog () {
     FileWriter archivo //nuestro archivo log

     public void crearLog(String Operacion) {

        //Pregunta el archivo existe, caso contrario crea uno con el nombre log.txt
        if (new File("log.txt").exists()==false){archivo=new FileWriter(new File("log.txt"),false);}
             archivo = new FileWriter(new File("log.txt"), true);
             Calendar fechaActual = Calendar.getInstance(); //Para poder utilizar el paquete calendar    
             //Empieza a escribir en el archivo
             archivo.write((String.valueOf(fechaActual.get(Calendar.DAY_OF_MONTH))
                  +"/"+String.valueOf(fechaActual.get(Calendar.MONTH)+1)
                  +"/"+String.valueOf(fechaActual.get(Calendar.YEAR))
                  +";"+String.valueOf(fechaActual.get(Calendar.HOUR_OF_DAY))
                  +":"+String.valueOf(fechaActual.get(Calendar.MINUTE))
                  +":"+String.valueOf(fechaActual.get(Calendar.SECOND)))+";"+operacion+"\r\n");
             archivo.close(); //Se cierra el archivo
     }//Fin del metodo crearLog
   
     //Como ejemplo ponemos el caso que se este agregando nombres de personas a un vector
     //y queremos guardar en el Log cada vez que ocurre el evento, seria así:

     public void agregarPersona() {
          //Codigo .....
          this.crearLog("Nueva Persona guardada"); //Guarda en el Log el evento realizado
     }

     public static main() {
          archivoLog archivo = new ArchivoLog(); //Instancia de la clase para utilizar sus metodos.
          archivo.agregarPersona(); //Se llama al método agregarPersona
     }//Fin del main

}//Fin de la clase






La clase File en Java

La clase File en Java utilizando Netbeans 7.1

La clase file es útil para recuperar información acerca de un archivo o directorio que se encuentra en el disco.
Los objetos de la clase File se utilizan con objetos de otras clases de java.io para especificar los archivos o directorios a manipularse.

Crear Objetos File:
La clase File nos proporciona 4 constructores:

     Constructor 1: 
     public File (String nombre)

El cual especifica el nombre del archivo o directorio que se asocia al objeto File. El nombre puede contener información sobre la ruta, así como el nombre del archivo o directorio; la ruta especifica la ubicación del archivo o directorio en el disco, se puede tener una ruta relativa o una ruta absoluta.

     Constructor 2:
     public File (String ruta, String nombre)

El argumento ruta (ruta absoluta o relativa) sirve para ubicar al archivo o directorio especificado por el parámetro nombre.

     Constructor 3:
     public File (File directorio, String nombre)

Usa un objeto File existente llamado directorio (ruta absoluta o relativa) para localizar un archivo o directorio especificado por el parámetro nombre.

     Constructor 4:
     public File (URI uri)

Usa el objeto URI (Identificador Uniforme de Recursos) para localizar el archivo. Es una forma mas general de una URL (Localizador Uniforme de Recursos).

Existen distintos métodos que se pueden utilizar en la clase File, los cuales se enumeran a continuación.
boolean canRead()>> devuelve true si la aplicación actual puede leer un archivo.
boolean canWrite()>> devuelve true si la  aplicación actual puede escribir en un archivo.
boolean exists()>> devuelve true si el archivo o directorio existe.
boolean isFile()>> devuelve true si el nombre especificado en el constructor es un archivo.
boolean isDirectory()>> devuelve true si el nombre especificado en el constructor es un directorio.
boolean isAbsolute()>> devuelve true si los argumentos en el constructor se refieren a una ruta absoluta.
String getAbsolutePath()>> devuelve una cadena con la ruta absoluta del archivo o directorio.
String getName()>> devuelve una cadena con el nombre del archivo o directorio.
String getPath()>> devuelve una cadena con la ruta del archivo o directorio.
String getParent()>> devuelve una cadena con el directorio padre del archivo o directorio.
long lenght()>> devuelve la longitud del archivo en bytes, si es directorio devuelve 0.
long lastModified()>> devuelve la información de la ultima modificación del archivo o directorio.

Una simple demostración del uso de la clase File:

El siguiente programa pide al usuario que escriba el nombre de un archivo o directorio para después mostrar en pantalla información del archivo o directorio introducido. 

import java.io.File;
import java.util.Scanner;

public class demostracionClaseFile () {
     
     public void analizarRuta() {
          File nombre = new File (ruta); //crea objeto File en base al nombre introducido por el usuario
          if (nombre.exists()) { //si el archivo o directorio existe muestra la información
               System.out.println(nombre.getName()+ "existe" );  
               System.out.println(nombre.isFile+ "es un archivo");
               System.out.println(nombre.isDirectory+ "es un directorio");   
          }else System.out.println(nombre+ "ruta no existe"); 
     }

     public static void main(String args[]) {
          Scanner entrada = new Scanner (System.in);
          System.out.println("Escriba el nombre del archivo o directorio");
          analizarRuta(entrada.next.Line());
     } 
}







Como Crear Archivos en Java usando Netbeans 7.1


En este ejemplo se mostrara como crear un archivo para escribir datos almacenados en el programa y como leerlos al iniciar el mismo.

Para ello se hace uso de las clases ObjectInputStream y ObjectOutputStream para poder escribir y leer el archivo creado.

A continuación se mostrara un ejemplo sencillo que como hacer esto.

public class archivoJava() implements Serializable {
     public Persona personas[]; //vector es es de tipo serializable Persona que tiene los atributos
     private ObjectInputStream input; //objeto para leer el archivo
     private ObjectOutputStream output; //objeto para poder escribir en el archivo

     public archivoJava(Persona[] personas) {
          this.personas = personas;
     } //Fin del constructor
  
     //Método que permite guardar un archivo de texto
     public void guardarArchivo() {
          try {
              output = new ObjectOutputStream(new FileOutputStream("archivo.txt"));
              output.writeObject(getPersonas());
              output.close();
          }catch (Exception e) {
              JOptionPane.showMessageDialog(null, "Error al guardar archivo", "Mensaje",
              JOptionPane.WARNING_MESSAGE);                                                                                                 
         }
     } //Fin del método guardarArchivo

     //Método que permite leer un archivo de texto
     public void leerArchivo() {
      try{
            input=new ObjectInputStream(new FileInputStream("archivo.txt"));
            personas=(Persona[])input.readObject(); //personas es una clase serializable
            setnPersona(numPersonas());
            input.close();
      }catch (IOException e) {}
        catch (ClassNotFoundException e) {}
    }  //Fin del método leerArchivo   

} //Fin de la clase