Borrar contenido de un fichero

Iniciado por Baal_30, 24 Mayo 2015, 13:00 PM

0 Miembros y 1 Visitante están viendo este tema.

Baal_30

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.
«La suerte es el cuidado de los detalles». -Winston Churchill

Chuidiang

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.

daryo

#2
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
buenas

Baal_30

¿Esa es la única solución? ¿No se puede borrar directamente contenido de un archivo de texto?

Voy a intentarlo como comentáis :)
«La suerte es el cuidado de los detalles». -Winston Churchill

MinusFour

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.