Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Baal_30 en 24 Mayo 2015, 13:00 pm



Título: Borrar contenido de un fichero
Publicado por: Baal_30 en 24 Mayo 2015, 13:00 pm
Muy buenas, antes que nada disculpas porque últimamente vuelvo a estar pesadito con las dudas jaja  :rolleyes:

La cuestión es que tengo un fichero.txt que contiene nombres de personas, y quiero pedir un nombre al usuario y que el programa borre ese nombre del fichero, ¿como puedo hacerlo?

Gracias de antemano y un saludo.


Título: Re: Borrar contenido de un fichero
Publicado por: Chuidiang en 24 Mayo 2015, 13:41 pm
Hola:

Un fichero es una ristra de bytes en el disco. No puedes borrar solo un trozo. La única solución es escribir un fichero nuevo con el nuevo contenido.

Como mucho, usando la clase RandomAcessFile que permite sobrrescribir los bytes en el fichero, podrías poner espacios u otro caracter encima del nombre que quieres borrar, pero eso puede o no servirte, dependiendo de si consideras valido como borrar el tener un montón de espacios en vez de un nombre.

Se bueno.


Título: Re: Borrar contenido de un fichero
Publicado por: daryo en 24 Mayo 2015, 14:09 pm
lo lees , creas un archivo temporal y vas escribiendo todo ahi , cuando acabas cierras los dos archivos borras el original y el archivo temporal le cambias el nombre como si fuera el original.

Es lo que hace por ejemplo microsoft office, solo que el archivo temporal se mantiene oculto


Título: Re: Borrar contenido de un fichero
Publicado por: Baal_30 en 24 Mayo 2015, 17:31 pm
¿Esa es la única solución? ¿No se puede borrar directamente contenido de un archivo de texto?

Voy a intentarlo como comentáis :)


Título: Re: Borrar contenido de un fichero
Publicado por: MinusFour en 24 Mayo 2015, 18:27 pm
Lees el archivo de texto, guardas el contenido en un string, eliminas parte del contenido en el string y vuelves a escribir el string al archivo de texto. Esa seria la solución más fácil pero muy probablemente la menos optima.