En las líneas 59 a 62 se leen datos del usuario y se almacena la información del registro en el objeto 

Regis-

troCuenta

. Cada instrucción lanza una excepción tipo 

NoSuchElementException

 (que se maneja en las líneas 

82 a 86) si los datos se encuentran en el formato incorrecto (por ejemplo, una cadena cuando se espera un 

int

), o 

si no hay más datos que introducir. Si el número de cuenta es mayor que 0 (línea 64), la información del registro 

60 

 

 

 

      

registro.establecerPrimerNombre( entrada.next() ); 

// lee el primer nombre

61 

 

 

 

       

registro.establecerApellidoPaterno( entrada.next() );

 // lee el apellido 

paterno

62 

 

 

 

      

registro.establecerSaldo( entrada.nextDouble() );

 // lee el saldo

63

 64 

 

 

 

      

if

 ( registro.obtenerCuenta() > 

0

 )

 65 

 

 

 

      

{

 66 

 

 

 

            

// escribe el nuevo registro

67 

 

 

 

           

salida.format(

"%d %s %s %.2f\n"

, registro.obtenerCuenta(), 

 

68     

 

registro.obtenerPrimerNombre(), registro.obtenerApellidoPaterno(),

 

69     

 

registro.obtenerSaldo() );

 70 

 

 

 

      

}

// fin de if

71 

 

 

 

      

else

 72 

 

 

 

      

{

 73 

 

 

 

            

System.out.println(

 

74     

 "El numero de cuenta debe ser mayor que 0."

 );

 75 

 

 

 

      

}

// fin de else

76    

}

// fin de try

77    

catch

 ( FormatterClosedException formatterClosedException )

 

78    

{

 79 

 

 

 

      

System.err.println(

"Error al escribir en el archivo." 

);

 80 

 

 

 

      

return

;

 

81    

}

 // fin de catch

82    

catch

 ( NoSuchElementException elementException )

 

83    

{

 84 

 

 

 

      

System.err.println(

"Entrada invalida. Intente de nuevo."

 );

 85 

 

 

 

       

entrada.nextLine();

// descarta la entrada para que el usuario intente de 

nuevo

86    

}

// fin de catch

87

 

88    

System.out.printf(

"%s %s\n%s"

,

"Escriba el numero de cuenta (> 0),"

,

 89 

 

 

 

       

"primer nombre, apellido paterno y saldo."

,

"? " 

);

 90  

 

}

// fin de while

91

}

// fin del método agregarRegistros

92

 93  

// cierra el file

94

public void

 cerrarArchivo()

 95  

{

 96  

 

if

 ( salida != 

null

 )

 

97    

salida.close();

 98  

}

// fin del método cerrarArchivo

99

}

// fin de la clase CrearArchivoTexto

Figura 14.7  

|  Creación de un archivo de texto secuencial. (Parte 2 de 2).

Sistema operativo

Combinación de teclas

UNIX/Linux/Mac OS X

<Intro> <Ctrl> d

Windows

<Ctrl> z

Figura 14.8 

 |  Combinaciones de teclas de fi n de 

archivo para diversos sistemas operativos.

14.5 Archivos de texto de acceso secuencial 

621

14_MAQ_CAP_14_DEITEL.indd621

4/19/081:28:14AM