Leer registros de archivo
Para practicar los conceptos de lectura y escritura de archivos he realizado un formulario con dos botones para escribir y leer registros desde un archivo. Mi problema es que al tratar de leer los registros que introduzco por la misma aplicación me da una excepción NoSuchElementException. Mi código para leer el archivo es el siguiente:
private void leerRegistro()
{
//objeto que se va a leer en el archivo
Personas p = new Personas();
//lee los registros
try
{
lectura = new Scanner(new File("clientes.txt"));
//recibe los valores del archivo
while(lectura.hasNext())
{
p.establecerCuenta(lectura.nextInt());
p.establecerNombre(lectura.next());
p.establecerApellido(lectura.next());
p.establecerSaldo(lectura.nextDouble());
//si el saldo es el elegido lo muestra
if(debeMostrar(p.obtenerSaldo()))
jTextArea1.setText(Integer.toString(p.obtenerCuenta())+ "\t" + p.obtenerNombre() + "\t" + p.obtenerApellido()+ "\t"+ Double.toString(p.obtenerSaldo())+ "\r\n");
}
}
catch(NoSuchElementException such)
{
JOptionPane.showMessageDialog(null, "El archivo no está bien formado");
System.exit(1);
/}
catch(IllegalStateException state)
{
JOptionPane.showMessageDialog(null, "Error al leer el archivo");
System.exit(1);
}
catch(FileNotFoundException notFound)
{
JOptionPane.showMessageDialog(null, "No se puede encontrar el archivo");
System.exit(1);
}
finally
{
if(lectura != null)
lectura.close();
}
}//fin del método leer registro
Lo mas raro es que si copio y pego un archivo en el directorio ya con datos (y borro el que cargue con la aplicación), me lo lee bien pero si cargo desde la aplicación no me lo lee. Por mas que me carga sin problemas y no me da ninguno error en la carga de datos.
No entiendo porque me pasara esto.