14.5.2 Cómo leer datos de un archivo de texto de acceso secuencial
Los datos se almacenan en archivos, para poder procesarlos según sea necesario. En la sección 14.5.1 demostramos
cómo crear un archivo para acceso secuencial. Esta sección muestra cómo leer los datos secuencialmente desde un
archivo de texto. En esta sección, demostraremos cómo puede utilizarse la clase
Scanner
para recibir datos de
un archivo, en vez del teclado.
La aplicación de las fi guras 14.11 y 14.12 lee registros del archivo
"clientes.txt"
creado por la aplicación
de la sección 14.5.1 y muestra el contenido de los registros. En la línea 13 de la fi gura 14.11 se declara un objeto
Scanner
, que se utilizará para obtener los datos de entrada del archivo.
El método
abrirArchivo
(líneas 16 a 27) abre el archivo en modo de lectura, creando una instancia de un
objeto
Scanner
en la línea 20. Pasamos un objeto
File
al constructor, el cual especifi ca que el objeto
Scanner
leerá datos del archivo
"clientes.txt"
ubicado en el directorio desde el que se ejecuta la aplicación. Si no puede
encontrarse el archivo, ocurre una excepción tipo
FileNotFoundException
. La excepción se maneja en las líneas
22 a 26.
Figura 14.9
| Prueba de la clase
CrearArchivoTexto
. (Parte 2 de 2).
Escriba el numero de cuenta (> 0), primer nombre, apellido paterno y saldo.
?
500 Sue Rich 224.62
Escriba el numero de cuenta (> 0), primer nombre, apellido paterno y saldo.
?
^Z
Figura 14.10
| Datos de ejemplo para el programa de la fi gura 14.7.
Datos de ejemplo
100
Bob
Jones
24.98
200
Steve Doe
-345.67
300
Pam
White
0.00
400
Sam
Stone
-42.16
500
Sue Rich
224.62
1
// Fig. 14.11: LeerArchivoTexto.java
2
// Este programa lee un archivo de texto y muestra cada registro.
3
import
java.io.File;
4
import
java.io.FileNotFoundException;
5
import
java.lang.IllegalStateException;
6
import
java.util.NoSuchElementException;
7
import
java.util.Scanner;
8
9
import
com.deitel.jhtp7.cap14.RegistroCuenta;
10
11
public class
LeerArchivoTexto
12
{
13
private
Scanner entrada;
14
15
// permite al usuario abrir el archivo
16
public void
abrirArchivo()
17
{
18
try
Figura 14.11
| Lectura de un archivo secuencial mediante un objeto
Scanner
. (Parte 1 de 2).
14.5 Archivos de texto de acceso secuencial
623
14_MAQ_CAP_14_DEITEL.indd623
4/19/081:28:15AM