You are on page 1of 5

Ejercicios

14.1 Complete las siguientes oraciones:


a) Bsicamente, todos los elementos de datos procesados por una computadora se
reducen en combinaciones de _unos__ y __aceros______.
b) El elemento de datos ms pequeos que puede procesar una computadora se conoce
como _____bit_____
C) un __archivo_______ puede verse algunas veces como un grupo de registro
relacionados.
d) Los dgitos, letras y smbolos especiales se conocen como _caracteres__.
e) Una base de datos es un grupo de _archivos_______ relacionados.
f) El objeto _System.err________ normalmente permite a un programa imprimir mensajes
de error en la pantalla.
14.2 conteste con verdadero o falso a cada una de las siguientes proposiciones; en caso
de ser falso, explique porque.
a) El programador debe crear explcitamente los objetos flujo system. In, system.out y
system.err. Falso. Estos tres flujos se crean para el programador cuando se empieza a
ejecutar una aplicacin de Java.
b) Al leer datos de un archivo mediante la clase scanner, si el programador desea leer
datos en el archivo. Esto desplaza el apuntador de posicin de archivo de vuelta hasta el
principio del archivo. Verdadero.
c) El mtodo exists de la clase file devuelve true si el nombre que se especifica como
argumento para el constructor de file es un archivo o directorio en la ruta especifica
Verdadero.
d) Los archivos binarios pueden ser ledos por los humanos
Falso. Los archivos de texto pueden ser ledos por los humanos.
e) Una ruta absoluta contiene todos los directorios, empezando con el directorio raz, que
conduce hacia un archivo o directorio especifico. Verdadero.


f) La clase formatter contiene el mtodo printf que permite imprimir datos con formato
en la pantalla, o enviarlos a un archivo.
Falso. La clase Formatter contiene el mtodo format, el cual permite imprimir datos con
formato en la Pantalla, o enviarlos a un archivo.


14.3 Complete las siguientes tareas; suponga que cada una se aplica al mismo programa:

a) Escriba una instruccin que abra el archivo "antmaest.txt" en modo de entrada; use la
variable Scanner llamada entAntMaestro.

Scanner entAntMaest = new Scanner( new File( "antmaest.txt" ) );

b) Escriba una instruccin que abra el archivo "trans.txt" en modo de entrada; use la
variable Scanner llamada entTransaccion.

Scanner entTransaccion = new Scanner( new File( "trans.txt" ) );

c) Escriba una instruccin para abrir el archivo "nuevomaest.txt" en modo de salida (y
creacin); use la variable Formatter llamada salNuevoMaest.

Formatter salNuevoMaest = new Formatter( "nuevomaest.txt" );

d) Escriba las instrucciones necesarias para leer un registro del archivo "antmaest.txt". Los
datos ledos deben usarse para crear un objeto de la clase RegistroCuenta; use la variable
Scanner llamada entAnt- Maest. Suponga que la clase RegistroCuenta es la misma que la
de la figura.

RegistroCuenta cuenta = new RegistroCuenta();
cuenta.establecerCuenta( entAntMaest.nextInt() );
cuenta.establecerPrimerNombre( entAntMaest.next() );
cuenta.establecerApellidoPaterno( entAntMaest.next() );
cuenta.establecerSaldo( entAntMaest.nextDouble() );

e) Escriba las instrucciones necesarias para leer un registro del archivo "trans.txt". El
registro es un objeto de la clase RegistroTransaccion; use la variable Scanner llamada
entTransaccion. Suponga que la clase RegistroTransaccion contiene el mtodo
establecerCuenta (que recibe un int) para establecer el nmero de cuenta, y el mtodo
establecerMonto (que recibe un double) para establecer el monto de la transaccin.

RegistroTransaccion transaccin = new Transaccin();
transaccion.establecerCuenta( entTransaccion.nextInt() );
transaccion.establecerMonto( entTransaccion.nextDouble() );


f) Escriba una instruccin que escriba un registro en el archivo "nuevomaest.txt". El
registro es un objeto de tipo RegistroCuenta; use la variable Formatter llamada
salNuevoMaest.

salNuevMaest.format( "%d %s %s &.2f\n",
cuenta.obtenerCuenta(),
cuenta.obtenerPrimerNombre(),cuenta.obtenerApellidoPaterno(), cuenta.obtenerSaldo()
);


14.4 Complete las siguientes tareas, suponiendo que cada una se aplica al mismo
programa:

a) Escriba una instruccin que abra el archivo "antmaest.ser" en modo de entrada; use la
variable Object-
InputStream llamada entAntMaest para envolver un objeto FileInputStream.

ObjectInputStream entAntMaest = new ObjectInputStream(
new FileInputStream( "antmaest.ser" ) );

b) Escriba una instruccin que abra el archivo "trans.ser" en modo de entrada; use la
variable Object-
InputStream llamada entTransaccion para envolver un objeto FileInputStream.

c) Escriba una instruccin para abrir el archivo "nuevomaest.ser" en modo de salida (y
creacin); use la
variable ObjectOutputStream llamada salNuevoMaest para envolver un objeto
FileOutputStream.

ObjectInputStream entTransaccion = new ObjectInputStream(
new FileInputStream( "trans.ser" ) );

d) Escriba una instruccin que lea un registro del archivo "antmaest.ser". El registro es un
objeto de la clase
RegistroCuentaSerializable; use la variable ObjectInputStream llamada entAntMaestro.
Suponga que la clase RegistroCuentaSerializable es igual que la de la fi gura 14.17.

registroCuenta = ( RegistroCuentaSerializable ) entAntMaest.readObject();

e) Escriba una instruccin que lea un registro del archivo "trans.ser". El registro es un
objeto de la clase RegistroTransaccion; use la variable ObjectInputStream llamada
entTransaccion.

registroTransaccion = ( RegistroTransaccion ) entTransaccion.readObject();

f) Escriba una instruccin que escriba un registro en el archivo "nuevomaest.ser". El
registro es un objeto de tipo RegistroCuenta; use la variable Formatter llamada
salNuevoMaest.
salNuevMaest.writeObject( nuevoRegistroCuenta );


14.5 Encuentre el error en cada uno de los siguientes bloques de cdigo y muestre cmo
corregirlo.

a) Suponga que se declaran cuenta, compania y monto.
ObjectOutputStream flujoSalida;
flujoSalida.writeInt( cuenta );
flujoSalida.writeChars( compania );
flujoSalida.writeDouble( monto );


Error: el archivo no se ha abierto antes de tratar de enviar datos al fl ujo.
Correccin: abrir un archivo en modo de salida, creando un nuevo objeto
ObjectOutputStream que envuelva a un objeto FileOutputStream.

b) Las siguientes instrucciones deben leer un registro del archivo "porpagar.txt". Se debe
utilizar la variable entPorPagar de Scanner para hacer referencia a este archivo.

Scanner entPorPagar = new Scanner( new File( "porpagar.txt") );
RegistroPorPagar registro = ( RegistroPorPagar ) entPorPagar.readObject();


Error: este ejemplo utiliza archivos de texto con un objeto Scanner, no hay serializacin de
objetos. Como resultado, el mtodo readObject no puede usarse para leer esos datos del
archivo. Cada pieza de datos debeleerse por separado y despus utilizarse para crear un
objeto RegistroPorPagar.
Correccin: utilice los mtodos de entPorPagar para leer cada pieza del objeto
RegistroPorPagar.

You might also like