2015-10-12 2 views
0

Я ученик старших классов, и я не так хорош в программировании. У меня возникла проблема с этим методом, который предназначен для отображения данных определенного клиента, который сохраняется в файле. Когда я запускаю программу и тестирую ее на интерфейсе, текстовое поле показывает только «Ошибка en el archivo». И я не понимаю, почему. Может кто-то мне помочь, пожалуйста?Ошибка отображается при поиске и показе в двоичных файлах

public void buscarclientes() throws IOException{ 
    try{ 
    RandomAccessFile archivoclientes=new RandomAccessFile ("clientesinf.dat", "rw"); 
    String nom =""; boolean existenombre=false; String nombre = ""; String email = ""; int tel=0; int cliente=0; long cantidadclientes=0; long tamclientes=94; 
    cantidadclientes=archivoclientes.length()/tamclientes; 
    nombre=this.Bclientes.getText(); 
    nombre=nombre.trim(); 

    while ((existenombre==false)&&(cliente<cantidadclientes)){ 
     archivoclientes.seek(cliente*tamclientes); 


     for (int n=1; 1<=20;n++) 
      nom=nom+Character.toString(archivoclientes.readChar()); 
      nom=nom.trim(); 

      if (nom.equalsIgnoreCase(nombre)){ 
      for (int n=1; 1<=30;n++) 
      email=email+Character.toString(archivoclientes.readChar()); 
      email=email.trim(); 
      tel=archivoclientes.readInt(); 

      Mostrardatos.setText("Nombre:" + nom + "\nEmail:" + email + "\nTeléfono:" + tel) ; 

     existenombre=true; 
     } 
     nom=""; 
     cliente=cliente++; 
    if (existenombre==false); 
    { 
     Mostrardatos.setText("No se encontró el nombre"); 

    archivoclientes.close(); 
    }}} 
    catch (EOFException e){}  
    { 
     Mostrardatos.setText("Error en el archivo"); 
    } 

} 

ответ

0

текстовое поле показывает «Ошибка ан-эль-Archivo», потому что он работает эта строка кода:

Mostrardatos.setText("Error en el archivo"); 

Это выглядит как кто-то, возможно, имел в виду, чтобы поместить это в блоке поймать для

catch (EOFException e){} 

однако поставив последний «{}» в конце закрыл блок поймать, так что текст всегда будет установлен в конце, независимо, какие ошибки присутствуют.

Мое предположение было бы изменить его к этому:

} catch (EOFException e) { 
    e.printStackTrace(); 
    Mostrardatos.setText("Error en el archivo"); 
} 

тогда, если он по-прежнему устанавливает ошибку Вам необходимо должны получить более подробную информацию в выходном окне Netbeans.

Ваш код, вероятно, будет легче читать, если вы отформатируете его с помощью ALT-SHIFT-F.

Смежные вопросы