在二进制文件中搜索和显示时会显示错误

时间:2015-10-12 02:33:53

标签: netbeans

我是一名高中生,我不擅长编程。我遇到此方法的问题,该方法旨在显示保存在文件中的某个客户端的数据。当我运行该程序并在界面上测试它时,文本字段仅显示" Error 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");
    }

}

1 个答案:

答案 0 :(得分:0)

文本字段显示&#34;错误en el archivo&#34;因为它正在运行这行代码:

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

看起来有人可能打算把它放在

的catch块中
catch (EOFException e){} 

然而,通过放置最后一个&#39; {}&#39;最后关闭了catch块以便文本 无论出现哪种错误,都将始终设置在最后。

我的猜测是将其更改为:

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

然后,如果仍然设置错误,你应该在Netbeans的输出窗口中获得更详细的信息。

如果使用ALT-SHIFT-F格式化代码,则可能更容易阅读。