Atom Blog

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