gentoo linux, java, software libre y otras hierbas
ene, 29 2008 - 12:15 pm

[código] Ejemplo de la clase File en Java

En el siguiente ejemplo veremos algunas de las características de la clase File del paquete java.io. Los métodos tratados en el siguiente ejercicio son:

  • exist que devuelve true si el archivo o directorio existe
  • getName que devuelve el nombre del directorio
  • isFile que devuelve true si el objeto File es un archivo
  • isDirectory que devuelve true si el objeto File es un directorio
  • isAbsolute que devuelve true si la ruta es absoluta
  • lastModified devuelve la fecha de la última modificación
  • length que devuelve la longitud del archivo o directorio
  • getPath y getAbsolutePath que devuelven la ruta y ruta absoluta respectivamente
  • getParent que devuelve el nombre del directorio padre
  • list que devuelve un arreglo de Strings con los nombres de los archivos y directorios

Vamos a ver el ejemplo:

// Demostracion de la clase File.
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class PruebaFile extends JFrame
   implements ActionListener {
   private JTextField campoEntrada;
   private JTextArea areaSalida;
   // configurar GUI
   public PruebaFile()
   {
      super( "Prueba de la clase File" );
      campoEntrada = new JTextField( "Escriba el nombre del archivo o directorio, por ejemplo / o C:\\" );
      campoEntrada.addActionListener( this );
      areaSalida = new JTextArea();
      areaSalida.setEditable(false);
      Container contenedor = getContentPane();
      contenedor.add( campoEntrada, BorderLayout.NORTH );
      contenedor.add( new JScrollPane(areaSalida), BorderLayout.CENTER );
      setSize( 400, 400 );
      setVisible( true );
   } // fin del constructor
   // mostrar informacion acerca del archivo especificado por el usuario
   public void actionPerformed( ActionEvent eventoAccion )
   {
      File nombre = new File( eventoAccion.getActionCommand() );
      // si nombre existe, mostrar informacion sobre el
      if ( nombre.exists() ) {
         areaSalida.setText( nombre.getName() + " existe\n" +
            ( nombre.isFile() ? "es un archivo\n" : "no es un archivo\n" ) +
            ( nombre.isDirectory() ? "es un directorio\n" :
               "no es un directorio\n" ) +
            ( nombre.isAbsolute() ? "es una ruta absoluta\n" :
               "no es una ruta absoluta\n" ) + "ultima modificacion: " +
            nombre.lastModified() + "\nLongitud: " + nombre.length() +
            "\nRuta: " + nombre.getPath() + "\nRuta absoluta: " +
            nombre.getAbsolutePath() + "\nPadre: " + nombre.getParent() );
         // mostrar informacion si nombre es un archivo
         if ( nombre.isFile() ) {
            // anexar el contenido del archivo a areaSalida
            try {
               BufferedReader entrada = new BufferedReader(
                  new FileReader( nombre ) );
               StringBuffer bufer = new StringBuffer();
               String texto;
               areaSalida.append( "\n\n" );
               while ( ( texto = entrada.readLine() ) != null )
                  bufer.append( texto + "\n" );
               areaSalida.append(bufer.toString());
            }
            // procesar los problemas en el procesamiento del archivo
            catch( IOException excepcionES ) {
               JOptionPane.showMessageDialog( this, "ERROR EN ARCHIVO",
                  "ERROR EN ARCHIVO", JOptionPane.ERROR_MESSAGE );
            }
         } // fin de instruccion if
         // mostrar listado de directorio
         else if ( nombre.isDirectory() ) {
            String directorio[] = nombre.list();
            areaSalida.append( "\n\nContenido del directorio:\n");
            for ( int i = 0; i < directorio.length; i++ )
               areaSalida.append( directorio[ i ] + "\n" );
         }
      } // fin de instruccion if externa
      // no es archivo ni directorio, mostrar mensaje de error
      else {
         JOptionPane.showMessageDialog( this,
            eventoAccion.getActionCommand() + " no existe",
            "ERROR", JOptionPane.ERROR_MESSAGE );
      }
   } // fin del metodo actionPerformed
   public static void main( String args[] )
   {
      JFrame.setDefaultLookAndFeelDecorated(true);
      PruebaFile aplicacion = new PruebaFile();
      aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   }
} // fin de la clase PruebaFile

Descargar código fuente

Los ejercicios utilizados en este post están basados en ejemplos del libro Cómo programar en Java de Deitel, y por lo tanto están bajo la licencia que esta editorial disponga.

13 Comentarios | deja el tuyo

Un enlace entrante

12 Comentarios en “[código] Ejemplo de la clase File en Java”

  1. Fredy R Guevara Zuasnabar dice:

    Quisiera un ejemplo de busqueda estoy haciendo un sistema ya hice la busqueda pero con un dialogo , pero he visto una busqueda en otro lenguaje en visual fox con un TexField se escribe lo que estas buscando y la barra del cursor se va ubicando en el registro especificado bueno eso es lo que necesito en estos momentos si tienen un ejemplo por favo mandamelo a mi correo

  2. alisson gaudard dice:

    necesito aprender amanejar urjente

  3. Cristian dice:

    Entra en una escuela de conducción, y allá te enseñan.

    Un saludo!

  4. arelik dice:

    hey gracias fue de mucha ayuda tu informacion

  5. lux dice:

    buenos dias, quisiera q por favor me indicaras cual son los metodos o clases para manejar archivos de acceso secuencial y aleatorios, es q no lo entiendo muy bien….

    y si tienes un ejemplo seria mucho mejor sino, no importa…

    gracias por tu colaboracion…

  6. Andres dice:

    amigo estaria a tu disposicion indicarme como esta dividido el valor que retorna lastModified() ya que intente usarlo para validar la fecha de un archivo y la fecha de modificacion es diferente a la que en realidad tiene el archivo

    el numero que me devuelve es:
    1274061067046
    y deberia acomodarse aqui segun el API:
    (00:00:00 GMT, January 1, 1970)

    el archivo fue creado 16 de mayo de 2010 a las 21:52 aprox

    Gracias por el Post esta muy bueno Gracias

  7. Edmond dice:

    Siempre con tus grandes aportes !!!

  8. gogy dice:

    como se declara un arreglo tipo clase File que en cada posicion guarda la ruta que yo quiero?

    • Cristian dice:

      Sería algo como:

      File[] archivos = new File[5];// este guardaría 5 archivos
      archivos[0] = new File("/ruta/archivo.ext");
      archivos[1] = new File("/foo/bar/document.doc");

      Saludos!

  9. nestor dice:

    hola que tal espero que me puedan colaborar ya que es bastante importante para mi pero es que necesito almacenarinformacion en java la cual no sea temporal. me pueden decir como hacerlo?? serande gran ayuda todas sus respuestas. Gracias

  10. liCiA dice:

    hola que tal sabe qe eh estado batachando kn lo de las modificaciones creo qe el codigo que tengo no… seria tan amable de enviarme el codigo para hacer las modificaciones lo mas pronto qe se pueda x favor..

  11. nestor dice:

    en si que es lo que necesitas para poderte colaborar mi correo es neso255@hotmail.com para que me envies el problema a resolver

¡Déjanos tu comentario!