style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

COMO ELIMINAR UN REGISTRO DE UN ARCHIVO DIRECTO

Tengo el siguiente problema:
Necesito eliminar un registro, de un archivo directo ARCHIVO.DAT pero cuando lo elimina, y los muestro de nuevo, no puedo ver los demas, a partir del elemento de donde borre.

public void Eliminar(int dato){  
        int clave,apunt;
        String nombre,nom,direccion,dir;
        int pos,posicion,n,d,pp,a,telefono,tel,capital,cap;  
        boolean encontrado=false;                        
       File fichero=new File("CLIENTES.DAT");    
       int TReg =  100;        
       if (fichero.exists()){    
           try{                                                    
                  maestro=new RandomAccessFile(fichero,"rw");                                                                                                                                      
                  pos=dato%100;
                  maestro.seek(pos*TReg);
                  clave=maestro.readInt();
                  nombre=maestro.readUTF();                      
                  apunt=maestro.readInt();
                  direccion=maestro.readUTF();
                  telefono=maestro.readInt();
                  capital=maestro.readInt();
                  pp=pos;
                  while (clave!=dato && apunt!=0){    
                       pp=pos;
                       pos=apunt;
                       maestro.seek(pos*TReg);
                       clave=maestro.readInt();
                       nombre=maestro.readUTF();                      
                       apunt=maestro.readInt();
                       direccion=maestro.readUTF();
                       telefono=maestro.readInt();
                       capital=maestro.readInt();
                  }
                  if (clave==dato){
                      //Text1.setText(clave+"");
                      //Text2.setText(nombre);
                      int opcion=JOptionPane.showConfirmDialog(null,"¿Desea eliminar este registro?","Confirmación...",JOptionPane.YES_NO_OPTION,JOptionPane.PLAIN_MESSAGE);
                       if (opcion==0){
                          posicion=pos;
                          pos=apunt;
                          d=apunt;
                          while (d!=0){
                              maestro.seek(pos*TReg);
                              clave=maestro.readInt();
                              nombre=maestro.readUTF();
                              apunt=maestro.readInt();
                              direccion=maestro.readUTF();
                              telefono=maestro.readInt();
                              capital=maestro.readInt();
                              a=clave;
                              nom=nombre;
                              d=apunt;
                              dir=direccion;
                              tel=telefono;
                              cap=capital;
                             
                              if (d==0)
                                apunt=0;
                             
                              else apunt=pos;                              
                              maestro.seek(posicion*TReg);
                              maestro.writeInt(a);
                              maestro.writeUTF(nom);
                              maestro.writeInt(apunt);
                              maestro.writeUTF(dir);
                              maestro.writeInt(tel);
                              maestro.writeInt(cap);
                              posicion=pos;
                              pos=d;
                              pp=-1;                              
                          }
                          maestro.seek(posicion*TReg);
                          clave=0;
                          nombre="";
                          apunt=0;
                          direccion="";
                          telefono=0;
                          capital=0;
                          maestro.seek(posicion*TReg);
                          maestro.writeInt(clave);
                          maestro.writeUTF(nombre);
                          maestro.writeInt(apunt);
                          maestro.writeUTF(direccion);
                          maestro.writeInt(telefono);
                          maestro.writeInt(capital);
                         
                          if (pp!=pos) pp=0;
                          if (pp>0  && apunt==0){
                              maestro.seek(pp*TReg);
                              clave=maestro.readInt();
                              nombre=maestro.readUTF();
                              apunt=maestro.readInt();
                              direccion=maestro.readUTF();
                              telefono=maestro.readInt();
                              capital=maestro.readInt();
                              apunt=0;
                              maestro.seek(pp*TReg);
                              maestro.writeInt(clave);
                              maestro.writeUTF(nombre);
                              maestro.writeInt(apunt);
                              maestro.writeUTF(direccion);
                              maestro.writeInt(telefono);
                              maestro.writeInt(capital);
                          }                              
                       }
                       
                  }
                  else{
                      JOptionPane.showMessageDialog(null,"Clave no encontrada","Informacion",JOptionPane.PLAIN_MESSAGE);
                      //Text1.setText("");
                      //Text2.setText("");                      
                  }
           }              
           catch (IOException e){              
           }                    
           finally{
               try{
                   maestro.close();                    
                 }
                 catch (IOException fff){
                 }                                        
           }                          
       }
       else JOptionPane.showMessageDialog(null,"No esta creado el archivo","Informacion",JOptionPane.PLAIN_MESSAGE);        
    }    

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">