我是一名高中生,我不太擅长编程。我有一个问题与此方法,打算显示某个客户端保存在一个文件中的数据。当我运行程序并在界面上测试它时,文本字段只显示"Error en el archive",我不明白为什么。有人能帮帮我吗?
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");
}
}
文本字段显示"Error en el archive ",因为它正在运行这行代码:
Mostrardatos.setText("Error en el archivo");
看起来好像有人想把这个放在
的catch块中catch (EOFException e){}
但是,通过将最后一个'{}'放在末尾关闭了catch块,以便文本将总是在最后设置,无论存在哪些错误。
我猜应该改成这样:
} catch (EOFException e) {
e.printStackTrace();
Mostrardatos.setText("Error en el archivo");
}
那么如果它仍然设置错误,你应该在Netbeans的输出窗口中得到更详细的信息。
如果你用ALT-SHIFT-F
来格式化你的代码,可能会更容易阅读。