Complementando la Clase ManejoObj (Archivos)

En el artículo anterior publiqué, a manera de ejemplo, la clase ManejoObj para ser utilizada en el manejo de archivos de acceso aleatorio con objetos.

En esa clase, existe un método llamado Eliminar(String Cod), el cual marca el registro como eliminado, sin procesar la eliminación física del archivo. Para hacer efectiva la eliminación física, podemos implementar el siguiente método Regenerar(), el cual crea un archivo temporal para guardar los registros no marcados como eliminados, luego elimina el archivo original volviendolo a restaurar renombrando el archivo temporal.

public void Regenerar() throws IOException { 
File ArchivoTemp=new File("temporal.tmp"); 
ManejoObj FlujoTemp=new ManejoObj(ArchivoTemp); 
CProducto Obj; 
for(int reg_i = 0; reg_i < nregs; reg_i++) { 
Obj = this.ValorEn(reg_i); 
if(Obj.getCodigo().compareTo("") != 0) 
FlujoTemp.Añadir(Obj); 
} 
this.Cerrar(); 
FlujoTemp.Cerrar(); 
ArchivoActual.delete(); 
if(!ArchivoTemp.renameTo(ArchivoActual)) 
throw new IOException("No se actualizo el archivo");
}

Etiquetado: / /

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.