jump to navigation

Vaciar el contenido de un fichero mediante borrado y creación Agosto 1, 2010

Publicado por lineadecodigo en : Java , 2 comentarios

Si ayer veíamos como Vaciar el contenido de un fichero con Java. Hoy vamos a proponer otra alternativa a lo explicado en dicho artículo.

En este caso el procedimiento para vaciar el contenido de un fichero con Java será el de borrar el fichero y volverlo a crear. Un procedimiento mucho más brusco que el anterior. ;-)

Hay que tener especial cuidado ya que en ciertos entornos podemos manipular el contenido de un fichero, si bien no tenemos capacidades de borrado y creación de los mismos. Es por ello que este código no valdría. De igual manera es brusco, ya que el proceso podría realizar solo uno de los dos pasos -el borrado- y dejar incosistente el sistema. Es por ello que seguimos recomendando lo explicado en Vaciar el contenido de un fichero con Java.

Si bien, vamos con ello... Con la clase File obtenemos una instancia del fichero que queremos manipular

  1. String sFichero = "fichero1.txt";
  2. File f = new File(sFichero);

Ahora solo tenemos que enviar los dos comandos: el de borrado mediante el método .delete() y el de creación mediante el método .createNewFile()

  1. f.delete();
  2. try {
  3. f.createNewFile();
  4. } catch (IOException ioe) {
  5. ioe.printStackTrace();
  6. }

Cuando lanzamos el método .createNewFile() hay que tener cuidado ya que se puede elevar la excepción IOException.

Ya hemos visto que con unas pocas líneas podemos vaciar el contenido de un fichero mediante borrado y creación.

|- Descargar el código
|- Reportar error en el código
|- Foro sobre Java IO

Vaciar el contenido de un fichero con Java Julio 31, 2010

Publicado por lineadecodigo en : Java , Hasta ahora 1 comentario

Nos llegaba una pregunta vía comentarios sobre como vaciar el contenido de un fichero con Java. Y nos pusimos manos a la obra.

El procedimiento es muy sencillo. Lo primero que tenemos que hacer es abrir un stream de escritura sobre el fichero. Para ello necesitaremos de un FileWriter y un BufferedWriter.

  1. BufferedWriter bw = new BufferedWriter(new FileWriter(sFichero));

Una vez que tenemos el stream sobre el BufferedWriter lo que vamos a hacer es escribir una línea vacía. Para ello utilizamos el método .write().

  1. bw.write("");

Así lo que conseguimos es machacar todo el contenido que pudiese existir en el fichero. Vaciándolo de su contenido actual. Ahora, no hay que olvidarnos de cerrar nuestro fichero. Esto lo hacemos mediante el método .close() del BufferedWriter.

  1. bw.close();

Y ya hemos conseguido vaciar el contenido de un fichero con Java.

Ojo, hay que tener cuidado de que el fichero exista o se nos generará una excepción FileNotFoundException o IOException.

|- Descargar el código
|- Reportar error en el código
|- Foro sobre Java IO

Listar contenido de un directorio con ASP Febrero 4, 2009

Publicado por lineadecodigo en : ASP , 2 comentarios

Una de las cosas que nos permite el objeto FileSystemObject es listar el contenido de un directorio.
Esto nos puede servir si queremos implementar mediante ASP una especie de navegador de carpetas del servidor o algo por el estilo. De esta manera y junto con el resto de características del objeto FileSystemObject podemos llegar a implementar un verdadero gestor de los ficheros de nuestro servidor.

Lo primero que tenemos que hacer es obtener una referencia a dicho objeto:

  1. Set fso = CreateObject("Scripting.FileSystemObject")

Una vez instanciado el objeto FileSystemObject, lo que tenemos que hacer es recuperar una referencia a la carpeta de la cual queremos listar los archivos. Para ello nos apoyamos en el método .GetFolder().

  1. Set directorio = fso.GetFolder ("C:\windows")

Esta referencia, en si, es otro objeto, el cual contendrá el listado de ficheros. A si que, lo que pasaremos a hacer es recorrer dicho objeto ayudándonos de un bucle for..each.

  1. For Each fichero IN directorio.Files
  2. ...
  3. Next

Directamente podemos volcar el contenido de la variable fichero, lo cual nos dará información sobre el mismo. Por otro lado, si queremos obtener solo el nombre del fichero, podemos crear un objeto File. Del objeto file podemos utilizar la propiedad Name para obtener únicamente el nombre del fichero, sin la ruta.

  1. Set file = fso.GetFile(fichero)
  2. Response.Write fichero.Name &"<BR>"

El código completo nos quedaría de la siguiente forma:

  1. For Each fichero IN directorio.Files
  2. Set file = fso.GetFile(fichero)
  3. Response.Write (fichero.Name)&"<BR>"
  4. Next
  5.  
|- Descargar el código
|- Reportar error en el código

Saber si una ruta es un directorio con Java Febrero 1, 2009

Publicado por lineadecodigo en : Java , Hasta ahora 1 comentario

La clase File nos permite en Java instanciar cualquier elemento del sistema de ficheros y trabajar con él de una forma genérica. A la hora de instanciar el elemento podremos pasar al constructor bien un directorio o bien un fichero.

La instanciación de un objeto File sería de la siguiente forma:

  1. File fRuta = new File("c:\\prueba");

Solo tendremos que apoyarnos en el método .isDirectory() para saber si una ruta es un directorio con Java:

  1. if (fRuta.isDirectory())
  2. System.out.println("Es un directorio");
  3. else
  4. System.out.println(" NO es un directorio");
|- Descargar el código
|- Reportar error en el código

Borrar un directorio con Java Diciembre 28, 2008

Publicado por lineadecodigo en : Java , 4 comentarios

Para borrar un directorio en Java podemos utilizar el mismo código que para borrar un fichero.

Los pasos serían muy sencillos, ya que simplemente deberíamos de instanciar el objeto File y ejecutar el método .delete sobre el directorio.

  1.  
  2. String sDirectorio = "c:\\directorio";
  3. File f = new File(sDirectorio);
  4.  
  5. if (f.delete())
  6. System.out.println("El fichero " + sDirectorio + " ha sido borrado correctamente");
  7. else
  8. System.out.println("El fichero " + sDirectorio + " no se ha podido borrar");
  9.  

El inconveniente de este código es que solo funciona si el directorio sobre el que lo ejecutamos está vacío.

Es por ello que para borrar un directorio con Java deberemos de borrar cada uno de los ficheros y directorios que este contenga. Al poder almacenar otros directorios, el código debe de recorrer recursivamente el directorio para ir borrando todos los ficheros.

Para ello vamos a realizar un método que recorra los directorios, vaya borrando los ficheros del directorio y vaya entrando en los subdirectorios para hacer la misma operación.

  1.  
  2. public static void borrarDirectorio (File directorio){...}
  3.  

Lo primero que haremos en el método borrarDirectorio es recuperar la lista de ficheros del directorio mediante el método .listFiles(). Mediante un bucle for recorreremos los elementos del directorio

  1.  
  2. File[] ficheros = directorio.listFiles();
  3.  
  4. for (int x=0;x<ficheros.length;x++){...}
  5.  

Si el elemento es un directorio, lo sabemos mediante el método .isDirectory, volvemos a llamar al método borrarDirectorio y luego borramos el directorio. En caso contrario, simplemente borramos el fichero.

  1.  
  2. if (ficheros[x].isDirectory()) {
  3. borrarDirectorio(ficheros[x]);
  4. }
  5. ficheros[x].delete())
  6.  

En el programa principal instanciamos el directorio a borrar y llamamos al método borrarDirectorio. Una vez borrado el directorio, ejecutamos el método .delete() sobre el directorio, que ya estará vacío.

  1.  
  2. String sDirectorio = "c:\\prueba";
  3. File f = new File(sDirectorio);
  4.  
  5. borrarDirectorio(f);
  6.  
  7. if (f.delete())
  8. System.out.println("El directorio " + sDirectorio + " ha sido borrado correctamente");
  9. else
  10. System.out.println("El directorio " + sDirectorio + " no se ha podido borrar");
  11.  
|- Descargar el código
|- Reportar error en el código

Listar un directorio de forma recursiva en Java Diciembre 27, 2008

Publicado por lineadecodigo en : Java , 5 comentarios

Ayer veíamos como listar el contenido de un directorio con Java. En este ejemplo listabamos el contenido, saliendo como resultado los ficheros y directorios que contenía este.

En este caso lo que vamos a hacer es listar el contenido de los directorios de forma recursiva. Es decir, cada vez que nos encontremos un directorio dentro del directorio que estamos listando, entraremos en él y listaremos su contenido. Así de forma recursiva sobre todos los directorios.

En este caso vamos a crear un método listarDirectorio, el cual reciba un elemento File que sea un directorio.

  1. public static void listarDirectorio(File directorio){...}

Lo primero que haremos será recuperar la lista de ficheros del directorio a listar mediante el método .listFiles(). Este método nos devuelve un array de Files.

Mediante un bucle for iremos recorriendo el array y volcando el nombre del fichero mediante el método .getName().

  1. for (int x=0;x<ficheros.length;x++){
  2. System.out.println(separador + ficheros[x].getName());
  3. }

Ahora viene la diferencia con respecto a listar el contenido de un directorio con Java. Y es que por cada elemento, además de volcar su nombre, comprobaremos si es un directorio mediante el método .isDirectory().

En el caso de que el elemento sea un directorio, volveremos a llamar al método listarDirectorio(), Pasándolo en elemento File que estamos tratando.

  1. if (ficheros[x].isDirectory()){
  2. String nuevo_separador;
  3. nuevo_separador = separador + " ";
  4. listarDirectorio(ficheros[x],nuevo_separador);
  5. }

En el código hemos insertado una variable separador, la cual añadirá un espacio en blanco cada vez que cambiemos de directorio.

|- Descargar el código
|- Reportar error en el código

Listar un directorio con Java Diciembre 26, 2008

Publicado por lineadecodigo en : Java , 3 comentarios

Mediante la clase File podremos listar de forma sencilla el contenido de un directorio. Lo primero que tendremos que hacer es crear un objeto de tipo File con el nombre del directorio a a listar.

  1.  
  2. String sDirectorio = "c:\\datos";
  3. File f = new File(sDirectorio);
  4.  

Utilizaremos el método .exists() para comprobar que el directorio existe.

  1.  
  2. if (f.exists()){ // Directorio existe }
  3. else { //Directorio no existe }
  4.  

Una vez pasada esta validación utilizamos el método .listFiles. Este método devuelve todos los ficheros asociados al directorio en un array de Files. Es por ello que solo nos quedará recorrer el array e ir mostrando el nombre de lo ficheros y directorios que componen nuestro directorio.

  1.  
  2. File[] ficheros = f.listFiles();
  3. for (int x=0;x<ficheros.length;x++){
  4. System.out.println(ficheros[x].getName());
  5. }

Para obtenerel nombre del fichero o directorio utilizamos el método .getName().

|- Descargar el código
|- Reportar error en el código

Borrar un fichero con Java Febrero 26, 2008

Publicado por lineadecodigo en : Java , 27 comentarios

Borrar un fichero con Java es una actividad bastante sencilla, ya que mediante la clase File, la cual nos abstrae de la manipulación de ficheros, se nos ofrece un método para llevar a cabo tal cometido.

Lo primero que deberemos de hacer es instanciar una clase File. Para instanciar esta clase deberemos de pasar al constructor el nombre del fichero sobre el que queremos trabajar.

(más...)

|- Foro sobre Java IO

Escribir en un fichero de texto con Java Febrero 6, 2008

Publicado por lineadecodigo en : Java , 34 comentarios

Si vamos a escribir en un fichero de texto, sería una buena práctica el validar si dicho fichero existe o no. También podríamos escribir sobre el fichero directamente. Ahora que esto lo haríamos si no nos importase mucho el contenido que este tuviese.

Para validar si existe un fichero podemos leer el ejemplo Saber si existe un fichero con Java. Dicho artículo nos explica de forma detallada lo simple que esto resulta.

(más...)

|- Foro sobre Java IO

Conocer el tamaño de un fichero con Java Julio 7, 2007

Publicado por lineadecodigo en : Java , 6 comentarios

Pocas líneas pueden llegar a darnos tanta información. Este es el caso en el que queramos conocer el tamaño de un fichero utilizando el lenguaje Java. Toda la información está contenida en la clase File.

Y es que lo primero que tenemos que hacer es instanciar dicha clase con la ruta, o path, del fichero sobre el que queremos obtener la información.

  1. String sFichero = "c:\\nombredelfichero.extension";
  2. File fichero = new File(sFichero);

Ahora solo nos quedará el invocar la propiedad .length() que nos devolverá el tamaño del fichero en bytes:

  1. fichero.length();

Pues como decía dos líneas arriba. Muy sencillo y útil.

|- Descargar el código
|- Reportar error en el código
|- Foro sobre Java File