Borrar un fichero con Java

26/Feb/2008 Java , 36 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.

  1. File fichero = new File("fichero.txt");

Para borrar el fichero deberemos de invocar el método .delete() de la clase File. En caso de que se pueda realizar el borrado del fichero, dicho método devolverá true. En caso contrario devolverá false. Es por ello que deberemos de controlar su respuesta.

  1. if (fichero.delete())
  2. System.out.println("El fichero ha sido borrado satisfactoriamente");
  3. else
  4. System.out.println("El fichero no puede ser borrado");

Vídeos sobre Java IO


36 comentarios en “Borrar un fichero con Java”

Víctor Cuervo

Corpse

Para los que no pueden borrar el archivo,
Como sugerencia De primera intancia me pasaba igual siempre se iba al Else, Revisen si lo tienen instanciado en alguna parte ya que que l JVM lo puede tener atrapado, usando el metodo close() de la misma clase File, el codigo funciona correctamente.
Saludos!!!

Víctor Cuervo

master

Víctor Cuervo

Erikus

El ejemplo de código en java para borrar es correcto. Funciona sin ningún problema. Si el archivo no se llega a borrar siempre es por algun agente externo a este código.

Saludos.

Víctor Cuervo

Zhavier

Hola ya eh encontrado la solución devén usar el fichero.delete(); en el cierre del archivo de lectura aquí un ejemplo

finally
{
try
{
if(null!=fr)//<-FileReader fr=new FileReader(fichero)
{
fr.close();
}
fichero.delete();//<-aqui me funciono ami
}
catch(Exception e)
{
System.err.println("Erro en el cierre del archivo");
}
}

Víctor Cuervo

Víctor Cuervo

@Luis,

Correcto. Es muy buena idea hacer ese checking antes. 😀

Víctor Cuervo

Luis

para los que tienen el problema de que no les elimina el archivo con el comando “delete()”… simplemente vean su codigo para ver si aun no estan trabajando con el archivo antes de intentar eliminarlo, en otras palabras que tengan una linea como esta “archivo.close()”

Víctor Cuervo

Haus

Hola; Quiero borrar una linea de un fichero txt en java y no se como hacerlo. ¿Algun@ me podría ayudar? Muchas gracias

Víctor Cuervo

lineadecodigo

@Carlos vela,

Danos más pistas. Cuando a un objeto le asignas un valor de null, el propio Garbage Collector lo elimina de la memoria.

¿Van por ahí los tiros?

También puedes utilizar nuestro foro
http://www.dudasprogramacion.com/forum/java-basico

Víctor Cuervo

Carlos Vela

hola tengo un proyecto en java y nesesino eliminar un objeto,prodrian atydarme?

Víctor Cuervo

lineadecodigo

@eduardo,

El ejemplo
http://lineadecodigo.com/java/ordenar-un-vector-de-string-en-java/

Podría darte una pista. De todas maneras nos ponemos a codificarlo con números para que quede más claro.

Víctor Cuervo

eduardo

ordenar 5 numeros en forma acendente

Víctor Cuervo

lineadecodigo

Víctor Cuervo

lineadecodigo

@eduardo,

Te he dejado el ejemplo de comparar el contenido de los ficheros en http://lineadecodigo.com/java/comparar-el-contenido-de-dos-ficheros-con-java/

Víctor Cuervo

lineadecodigo

@eduardo,

Para compararlos, quieres decir que tengan el mismo contenido?
Puedes ir recorriendo línea a línea y viendo si son iguales.

Para el tema de borrar el contenido de un archivo puedes hacer dos cosas. Abrir el fichero y escribir una cadena vacía o bien borrar el fichero y crearlo vacío.

Me parecen buenos ejemplos, así que los intentaré incluir en la web.

Víctor Cuervo

eduardo

1Comparar un archivo con otro y decir iguales si es igual
2borrar contenido de un aarchivo

Víctor Cuervo

Ing. Diego.

Existen varias formas de crear el archivo! entre ellas usando la clase File… File a=new File(“path”); y luego usas la funcion a.createNewFile(); de ahi puedes usar otras clases que te ayudaran de acuerdo a tus necesidades como la clase FileReader que es para leer la informacion del fichero, la FileWriter que te ayuda a escribir en el mismo y una que es la que te recomiendo para que puedas leer y escribir en el fichero RandomAccessFile a esta clase puedes pasarle un objeto de la clase File y el segundo parametro es el tipo de apertura al archivo. bueno ahi te dejo una idea ya sabes por donde puedes comenzar a investigar. Exito!

Víctor Cuervo

yania

hola, quisiera saber como crear un archivo y a la vez borrarle cosas a el….

Víctor Cuervo

corel

simplemente a los que no les borra es por que tiene un writer o un reader activo, para que pueda borrar tienen que poner
el objeto que estan unsando seguido del .close() y asi ya se puede borrar

Víctor Cuervo

alejandro

hola consulta como puedo borrar solo una palabra de txt usando java, gracias de antemano.

Víctor Cuervo

ing Diego

Buenas tardes! espero esten bien!! la verdad la funcion File.delete() si borra el fichero… pero tienen que tener en cuenta algo super importante!! cuiden que el fichero no lo este usando otra aplicacion y que ni siquiera este registrado dentro de la herramienta de desarrollo que esten usando. hagan un ejemplo con un fichero en el escritorio y denle la ruta al file:
File a=new File(C:/users/desktop/fichero.txt);
a.delete();
ojo: creen primero el fichero “fichero.txt”
correo: Diegoe_gamboa@hotmail.com

Víctor Cuervo

bryan

me mandaron una chamba y codificar buscar y eliminar en archivos xfavor podria ayudarme…!!! si puedes enviar a mi correo bryan32_so@……. muchas gracias!!!

Víctor Cuervo

TEMO

ups se me pasaba para eliminar el archivo simplemente se pondria
TextFile.delete();
dentro del metodo que vayan a querer que elimine el archivo….

Víctor Cuervo

TEMO

EL problema posiblemente es el close no el delete, pase todo un dia intentando solucionar ese problema, existen muchas formas para abrir los archivos, en mi caso como leo linea por linea lo hice de la siguiente manera
primero que nada crean su fichero para facilitar las cosas declarenlo dentro de la clase principal.
String sFichero = “C:\\fichero.txt”;
File TextFile = new File(sFichero);
ahora el metodo donde capturamos los datos
public void escribeArchivo()
{
try
{

FileWriter TextOut = new FileWriter(TextFile, true);
TextOut.write(aqui va la variable o cadena que desean almacenar);
TextOut.close();//OJO SIN ESTA PARTE NO TE MARCA HERROR Y LOS DATOS SE CAPTURAN Y MUESTRAN CORRECTAMENTE PERO NO TE DEJARA ELIMINAR EL ARCHIVO
}catch (IOException e) {
e.printStackTrace();
}
}
AHORA LA PARTE DE LECTURA (LEE LINEA POR LINEA POR LINEA EN EL BLOCK DE NOTAS AVECES NO SE APRECIAN LOS SALTOS DE LINEA PERO SI HACEN EL ARCHIVO .DOC EN LUGAR DE .TXT SE DARAN CUENTA QUE INTERNAMENTE SI EXISTE EL SALTO

public void CargarDatos() {
BufferedReader entrada;
try {

entrada = new BufferedReader( new FileReader( aqui va el nombre de tu fichero ) );
String linea;
while(entrada.ready()){

linea = entrada.readLine();
entrada.close();//ES SUMAMENTE IMPORTANTE PARA PODER ELIMINAR UN ARCHIVO QUE SE CIERREN TODOS LOS CICLOS
}catch (IOException e) {
e.printStackTrace();
}

}
al momento que capturas los datos en un archivo
no olviden las librerias estas son las mas usuales
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.File;
import java.io.FileReader;

ESPERO QUE A ALGUNO LE RESUELVA SUS DUDAS…..

Víctor Cuervo

yo mismo

Como ya han comentado otros usuarios, es problema de que el archivo esté abierto o no, o que no tengas permisos para modificarlo; en mi caso abro los archivos con InputStream y OutStream(según el caso), y para borrarlos debo cerrarlos con el método close. Una vez cerrados se borran perfectamente. Un saludo

Víctor Cuervo

lineadecodigo

@ Marco,

Tienes el ejemplo para borrar un directorio que no esté vacío en Borrar un directorio con Java.

Espero que sea de tu ayuda.

Víctor Cuervo

Juancho

la funcion delete devuelve false si el archivo esta asociado a un stream no cerrado conprueven si tienen el archivo abierto y cierrenlo y deberia funcionar 🙂

Víctor Cuervo

Jime

Hola, estoy realizando una aplicacion donde genero archivos “temporales” que me sirven para obtener las salidas finales que deseo, pregunta..como podria borrar todos los archivos que esten en una carpeta?, por ejemplo..tengo la carpeta C:\\Archivos y dentro de ella un numero n de archivos,con diferentes formatos.txt, png.. y quiero en un momento dado borrar todo lo q haya en esa cargracias
por la ayuda

Víctor Cuervo

karina

vos qui ero aser una tarea del grado 5 del ondas x favor xD

Víctor Cuervo

yiyo

Este ejemplo aunque es muy simple funciona OK, podría complementarse para que verifique algunos detalles del archivo.

saludos a Linea de Codigo

Víctor Cuervo

Alejandro

La solución de Alberto de las iteraciones, aunque no me gusta, la probaré y os contaré. En cambio, la solución de Max sí la he probado y no me funciona…. :'(

Víctor Cuervo

Max

esta bien, solo que a lo mejor se les olvido agregar la ruta del archivo donde esta guardado.

Por ejemplo, yo tengo puesto:

String sFichero = “C:\\fichero.txt”;

y con eso borro correctamente el archivo fichero.txt

espero hayan podido solucionar su problema, yo igual lo estoy usando en mi proyecto de programacion…

saludos…

Víctor Cuervo

Alberto

Debe ser por algo del sistema operativo que lo impida, o que en ese momento el archivo este siendo utilizado, o que este protegido…creo que puede ser por cualquier cosa. El caso es que algunas veces me lo borra y otras no. Una solucion que yo he hecho es meter la función delete en un while para 1000 iteracciones; en la mayoria de los casos consigo que lo elimine aunque no lo asegura al 100%.

Víctor Cuervo

Alejandro

Jojojojo,

pos yo también estoy igual…. la función “delete” siempre devuelve “false”… y no se borra ná

Víctor Cuervo

Paula

Pues me pasa igual que a Alberto, siemrpe se va a al else, por queeeee, lo necesito para mi proyecto fin de carrera, voy guardando imagenes en una carpeta y si no las voy borrando, es un poco tonto XD

Víctor Cuervo

Marco

como puedo borrar un archivo no vacio
por o q entiendo ese es para borrar un archivo o carpeta vacios
osea unicos
pero si la carpeta tiene algo en su interior no me funciona
si pueden contestar
se los agradeceria mucho

Víctor Cuervo

alberto

Hola estoy intentanto borrar ficheros con el metodo delete() de la clase File, segun has indicado pero no los borra, siempre se va al else. ¿Por que puede ser? gracias

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*