You are on page 1of 14

Fundamentos de Programacin II

Ejercicios Tema 3 Pgina 1



Tema 3. Excepciones


1. Qu imprime el siguiente programa? Y si x=7 e y=0?

cl ass Ej er ci ci o {
publ i c st at i c voi d mai n ( St r i ng [ ] ar gs) {
i nt x=0;
i nt y=7;
oper aci on ( x, y) ;
}
publ i c st at i c voi d oper aci on ( i nt a, i nt b) {
i nt op1=0;
bool ean segui r =t r ue;

t r y {
i f ( b==0) t hr ow new Mi Excepci on( ) ;
op1=a/ b;
}
cat ch ( Mi Excepci on e) {
Syst em. out . pr i nt ( " Di vi si n por cer o " ) ;
segui r =f al se;
}
f i nal l y{
Syst em. out . pr i nt ( " Fi nal l y " ) ;
}

i f ( segui r ) {
Syst em. out . pr i nt l n( op1) ;
}
}
}/ / f i n cl ase

cl ass Mi Excepci on ext ends Except i on{
} / / f i n cl ase


2. Indicar cules de las siguientes afirmaciones son verdaderas

A. En una estructura try-catch puede haber tantos bloques finally{} como se desee

B. El bloque finally{} slo se ejecuta si se ejecuta la seccin try del bloque try-catch{}

C. Si se lanza una excepcin en un mtodo y no se captura en l, ni en los que lo
invocan, debe capturarse siempre en el mtodo main() o ser arrojada en la cabecera
de dicho mtodo

D. El orden en el que se coloque los bloques catch despus de un try tiene
importancia


Fundamentos de Programacin II


Ejercicios Tema 3 Pgina 2

3. Qu imprimira el siguiente programa si se introduce a) n? ; b) s?; c) p?

i mpor t j ava. ut i l . Scanner ;
cl ass Ej er ci ci o {
publ i c st at i c voi d mai n ( St r i ng [ ] ar gs) {

Scanner l eer =new Scanner ( Syst em. i n) ;
Syst em. out . pr i nt ( I nt r oduzca un car ct er : ) ;
char val or =l eer . next ( ) . char At ( 0) ;
t r y {
i f ( val or ==' n' ) t hr ow new Aexcept i on( ) ;
i f ( val or == s ) t hr ow new Bexcept i on( ) ;
Syst em. out . pr i nt l n( " Est oy en t r y" ) ;
}
cat ch ( Aexcept i on a) {
Syst em. out . pr i nt l n( " Er r or t i po A" ) ;
}
cat ch ( Bexcept i on b) {
Syst em. out . pr i nt l n( " Er r or t i po B" ) ;
}
f i nal l y{
Syst em. out . pr i nt l n( " Est oy en f i nal l y" ) ;
}
Syst em. out . pr i nt l n( " Acabar " ) ;
}
}/ / f i n cl ase Ej er ci ci o
cl ass Aexcept i on ext ends Except i on{
} / / f i n cl ase Aexcept i on
cl ass Bexcept i on ext ends Except i on{
} / / f i n cl ase Bexcept i on


Fundamentos de Programacin II


Ejercicios Tema 3 Pgina 3

4. Indicar qu imprime el siguiente programa si los datos que se introducen son:
a) 0 1 2 3
b) 1 2 3 4
c) 1 2 3 5

i mpor t j ava. ut i l . Scanner ;
cl ass Ej er ci ci o1 {
publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) {
Scanner l eer =new Scanner ( Syst em. i n) ;
i nt [ ] mat r i z=new i nt [ 4] ;
f or ( i nt i =0; i <mat r i z. l engt h; i ++) {
Syst em. out . pr i nt f ( " I nt r oduzca el el ement o %d de l a
mat r i z\ n" , i ) ;
mat r i z [ i ] =l eer . next I nt ( ) ;
}
St r i ng cad = f ( mat r i z) ;
Syst em. out . pr i nt l n( cad) ;
}
publ i c st at i c St r i ng f ( i nt [ ] m) {
i nt var =0;
St r i ng cadena=" cadena=" ;
St r i ng cad=nul l ;
t r y {
f or ( i nt i =0; i <m. l engt h; i ++) {
var =i / m[ i ] ;
}
i f ( m[ 3] ==4) {
m[ 3] =m[ 4] ;
}
}
cat ch ( Ar r ayI ndexOut Of BoundsExcept i on ex) {
cad=" Ar r ay" ;
}
cat ch ( Ar i t hmet i cExcept i on ex) {
cad=" Ar i " ;
}
f i nal l y {
cadena+=cad;
}
r et ur n cadena;
}
}



Fundamentos de Programacin II


Ejercicios Tema 3 Pgina 4

5. Qu imprime el siguiente programa?

cl ass Ej er ci ci o {
publ i c st at i c voi d mai n ( St r i ng [ ] ar gs) {
i nt a;
i nt b=5;
t r y{
a=oper aci on ( b) ;
Syst em. out . pr i nt l n( " \ nc=" +a) ;
}
cat ch ( Ar i t hmet i cExcept i on e) {
Syst em. out . pr i nt ( " \ nDi vi si n por cer o " ) ;
}
}

publ i c st at i c i nt oper aci on ( i nt z) {
i nt y, x=0;
f or ( i nt i =0; i <z; i ++) {
y=( i nt ) ( Mat h. r andom( ) *6) ;
Syst em. out . pr i nt ( " \ nNumer o al eat or i o=" +y) ;
x- =x+( 3*y+5) / ( y- i ) ;
}
r et ur n x;
}
}



6. Qu imprime el siguiente programa?

cl ass Ej er ci ci o {
publ i c st at i c voi d mai n ( St r i ng [ ] a) {
i nt b[ ] = new i nt [ 10] ;
t r y {
f or ( i nt i =0; i <=b. l engt h; i ++) {
b[ i ] =i +2;
}
Syst em. out . pr i nt l n( b[ 2] ) ;
}
cat ch ( Ar r ayI ndexOut Of BoundsExcept i on e) {
Syst em. out . pr i nt l n( " Acceso a un el ement o de l a mat r i z"
+" f uer a de sus l mi t es" ) ;
}

}/ / f i n mai n
}/ / f i n Ej er ci ci o


Fundamentos de Programacin II


Ejercicios Tema 3 Pgina 5

7. Por qu el siguiente programa imprime el mensaje
Excepcin:java.lang.NullPointerException ?


cl ass Una {
i nt a;
publ i c Una( i nt a1) {
a=a1;
}
publ i c voi d set _a( i nt a_s) {
a=a_s;
}
publ i c i nt get _a( ) {
r et ur n a;
}
}

cl ass Ej er ci ci o {

publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) {
i nt [ ] mat r i z;
Una [ ] una;

t r y {
mat r i z=new i nt [ 3] ;
una=new Una [ 3] ;
f or ( i nt i =0; i <una. l engt h; i ++) {
mat r i z[ i ] =una[ i ] . get _a( ) ;
Syst em. out . pr i nt f ( " %d\ n" , mat r i z[ i ] ) ;
}
}
cat ch ( Nul l Poi nt er Except i on npe) {
Syst em. out . pr i nt l n( " Excepci n: " +npe. t oSt r i ng( ) ) ;
}
}
}


Fundamentos de Programacin II


Ejercicios Tema 3 Pgina 6

8. Qu imprime el siguiente programa?

cl ass Excepci on1 ext ends Except i on {}
cl ass Excepci on2 ext ends Except i on {}

cl ass Ej empl o_1 {

publ i c st at i c St r i ng devol ver _cadena( i nt num) {
St r i ng cad;
t r y{
i f ( num%2==0) {
t hr ow new Excepci on1( ) ;
}
el se {
t hr ow new Excepci on2( ) ;
}
}
cat ch ( Excepci on1 e1) {
cad=" Nmer o par " ;
}
f i nal l y {
cad=" Fi nal l y" ;
}
r et ur n cad;
}
publ i c st at i c voi d mai n( St r i ng ar gs[ ] ) {
i nt n=2;
Syst em. out . pr i nt l n( devol ver _cadena( n) ) ;
}/ / f i n del mai n
}/ / f i n de l a cl ase


9. Indique cul es el error del siguiente programa y cmo lo solucionara.

cl ass Excepci on_2 {

publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) {
char c;
St r i ng s=" Ej empl o" ;
l ong t i =Syst em. cur r ent Ti meMi l l i s( ) ;
f or ( i nt i =0; i <500000; i ++) {
c=s. char At ( i ) ;
}
l ong t =Syst em. cur r ent Ti meMi l l i s( ) - t i ;
Syst em. out . pr i nt l n( " t i empo en ms: " +t ) ;
}
}

10. Aprovechando la clase Polinomio del ejercicio 8 del tema 1, construir un programa
que calcule las races reales de una ecuacin de segundo grado. Capturar todas las
excepciones que se puedan producir como consecuencia de dicho clculo.


11. Construya un programa que calcule el n-simo nmero armnico, n se introducir
por teclado. Capture las excepciones que considere convenientes


Fundamentos de Programacin II


Ejercicios Tema 3 Pgina 7

12. Construya un programa que lea dos cadenas por teclado, si las dos cadenas
representan nmeros enteros las convertir a enteros y efectuar la divisin entre
ellas. Si alguna de las dos cadenas no es numrica concatenara dichas cadenas. En
cualquier caso debe imprimir el resultado. Capture las excepciones que se puedan
producir.


13. Escriba un programa que genere un nmero entero aleatorio entre 0 y n e indique
si el nmero generado es par o impar. El programa usar para ello el lanzamiento de
una excepcin.


14. Cree una clase Rectngulo que tenga dos atributos: longitud y anchura.
Considere ambas variables de tipo entero, siendo longitud privada y anchura
protegida. La clase Rectngulo tendr dos servicios: calcular_area y
calcular_permetro. Construya otra clase Rectngulo3D que derive de la anterior, a la
que debe aadir un tercer atributo privado, la altura (la variable que la represente ser
de tipo entero). La clase Rectngulo3D debe sobrescribir el mtodo calcular_rea y
aadir un nuevo mtodo, calcular_volumen. Cree finalmente un programa que, dadas
las dimensiones de un ortoedro, calcule su rea y su volumen. Implemente el cdigo
necesario de manejo de excepciones para que la anchura, la longitud y la altura sean
positivas, creando una nueva excepcin.


15. Dado el siguiente cdigo para la clase Camin:

class Camion {
private int ID;
private double carga_maxima;
private double peso_remolque;
public Camion (int iden, double cargamax, double peso_r) {
ID=iden;
carga_maxima=cargamax;
peso_remolque=peso_r;
}
public int devolver_ID (){
return ID;
}
public double calcular_carga(double peso_carga) {
double carga_total;
carga_total=peso_remolque+peso_carga;

return carga_total;
}
}//fin clase Camion

a) Reescribir el mtodo calcular_carga para que lance la excepcin
Carga_no_permitida con el mensaje El camin no puede transportar esa carga
en el caso de que la carga_mxima del camin sea menor que la carga_total
calculada en el mtodo calcular_carga.
b) Crear un mtodo main (en una clase independiente de la clase Camion) donde
se cree un objeto de la clase Camion y se imprima el identificador del camin
junto con la carga total devuelta por el mtodo calcular_carga. El valor
concreto de las variables necesarias para crear el objeto debe indicarse
directamente al crearlo (no se deben leer por teclado). Usar el mtodo printf.
c) Capturar en el mtodo main la excepcin Carga_no_permitida, imprimiendo el
mensaje correspondiente con el uso del mtodo getMessage.
Fundamentos de Programacin II


Ejercicios Tema 3 Pgina 8

d) Capturar en el mtodo main la excepcin que se puede producir consecuencia
de la introduccin de un carcter en lugar de un valor numrico cuando se
introduzca por teclado el peso de la carga (peso_carga). La excepcin que se
produce es InputMismatchException que est contenida en el paquete java.util.
Se debe imprimir el mensaje No ha introducido un valor numrico .
e) Crear la clase correspondiente a la excepcin definida por el usuario que
deber derivar de la clase Exception.


16. Construir un programa de entrenamiento que controle cuando un corredor que
est entrenando debe parar de hacerlo. Para ello, se construir una clase Corredor
que tendr un atributo energa del corredor. La clase tendr un mtodo
recargar_energa que recibir como parmetro una cantidad de energa que ser
sumada al atributo energa actual. Adems, dicha clase contendr un mtodo correr
que decrementar la energa en 10 unidades. Antes de decrementar la energa el
mtodo comprobar que la energa del corredor es mayor o igual a 10. Si no es as, el
mtodo lanzar una excepcin de tipo AgotadoException con un mensaje del tipo
Estoy agotado.. . Adems, se construir una clase que contenga el mtodo main
donde se controlar si el corredor puede seguir entrenando o no. Para ello, se crear
un objeto de clase Corredor con una energa que se leer por teclado. Se har que el
corredor corra hasta que se agote 3 veces. La primera vez que se agote su energa se
recargar con 30 unidades. La segunda vez que se agote, su energa se recargar con
10 unidades. Cuando el jugador se agote por tercera vez se dar el entrenamiento por
finalizado. Se deber leer por teclado la energa inicial del corredor. Si se introduce
un carcter en lugar de un entero, debe capturarse la excepcin y repetir el proceso
hasta que se haya introducido un nmero. La excepcin a capturar es
InputMismatchException. Todas las excepciones debern capturarse en el mtodo
main.



Fundamentos de Programacin II


Ejercicios Tema 3 Pgina 9

17. Suponiendo que el fichero datos existe, a) qu imprimir el siguiente programa si
hay 5 nmeros enteros en el fichero? b) Y si hay 3 nmeros enteros?

i mpor t j ava. i o. *;
i mpor t j ava. ut i l . Scanner ;
cl ass Excepci ondef ext ends Except i on{
}
cl ass Fi cher os {
publ i c st at i c voi d mai n( St r i ng [ ] ar gs) {
f l oat val or =0;
i nt v=3;
bool ean cont =t r ue, cont 1=t r ue;
Scanner l eer =new Scanner ( Syst em. i n) ;
RandomAccessFi l e ent r ada=nul l ;
t r y {
Syst em. out . pr i nt l n( " I nt r oduzca el nombr e del f i cher o" ) ;
ent r ada=new RandomAccessFi l e( l eer . next ( ) , " r " ) ;
}
cat ch( Fi l eNot FoundExcept i on e) {
Syst em. out . pr i nt l n( " Er r or en l a aper t ur a de dat os" ) ;
cont =f al se;
} / / f i n pr i mer bl oque t r y- cat ch

i f ( cont ) { / / Si cont es f al se se acaba el pr ogr ama
whi l e ( cont ) { / / Se l een t odos l os r egi st r os
t r y {
val or =ent r ada. r eadI nt ( ) ;
v++;
}
cat ch( EOFExcept i on eof ) { / / Se l een t odos l os r egi st r os
cont =f al se;
}
cat ch ( I OExcept i on e) {
Syst em. out . pr i nt l n ( " Er r or en l a l ect ur a de dat os" ) ;
cont =f al se; / / Se acaba el pr ogr ama
cont 1=f al se; / / Se acaba el pr ogr ama
} / / f i n segundo bl oque t r y- cat ch
} / / Fi n del whi l e

i f ( cont 1) { / / Si no hay er r or de I O
t r y{
ent r ada. cl ose( ) ;
}
cat ch ( I OExcept i on e) {
Syst em. out . pr i nt l n( " Er r or en el ci er r e del f i cher o" ) ;
}
f i nal l y {
t r y {
i f ( v<7) t hr ow new Excepci ondef ( ) ;
v+=v;
Syst em. out . pr i nt l n ( v) ;
}
cat ch ( Excepci ondef me) {
Syst em. out . pr i nt l n ( v- 3) ;
}/ / f i n t er cer bl oque t r y- cat ch
}/ / f i n bl oque t r y- cat ch- f i nal l y
}/ / f i n i f cont 1
} / / Fi n del i f cont
} / / Fi n mt odo mai n
} / / Fi n cl ase Fi cher os


Fundamentos de Programacin II


Ejercicios Tema 3 Pgina 10

18. Suponiendo que el fichero datos existe, qu imprimir el siguiente programa si
hay 3 dobles en el fichero?

i mpor t j ava. i o. *;
i mpor t j ava. ut i l . *;

cl ass Mi Excepci on ext ends Except i on{
}

cl ass Mi Excepci on2 ext ends Mi Excepci on{
}

cl ass Fi cher os {
publ i c st at i c voi d mai n( St r i ng [ ] ar gs) {
doubl e i ;
i nt val or =0;
bool ean segui r =t r ue;
Scanner ent r ada=nul l ;

t r y {
ent r ada= new Scanner ( new Fi l eReader ( " dat os" ) ) ;
}
cat ch( Fi l eNot FoundExcept i on e) {
Syst em. out . pr i nt l n( " Er r or en l a aper t ur a de dat os" ) ;
segui r =f al se;
} / / f i n pr i mer bl oque t r y- cat ch

i f ( segui r ) {

whi l e ( ent r ada. hasNext Doubl e( ) ) {
i =ent r ada. next Doubl e( ) ;
val or ++;
} / / Fi n del whi l e

ent r ada. cl ose( ) ;

t r y {
i f ( val or <=4) t hr ow new Mi Excepci on( ) ;
i f ( val or >=8) t hr ow new Mi Excepci on2( ) ;
Syst em. out . pr i nt l n ( val or ) ;
}
cat ch ( Mi Excepci on me) {
Syst em. out . pr i nt l n ( ++val or ) ;
}
cat ch ( Mi Excepci on2 me) {
Syst em. out . pr i nt l n ( - - val or ) ;
}

} / / Fi n del i f

} / / Fi n mt odo mai n
} / / Fi n cl ase Fi cher os

a) 4
b) 3
c) Error: La excepcin MiExcepcion2 debe ser captura antes que la excepcin
MiExcepcion
d) Error: El usuario no puede crear ms que una excepcin por clase

Fundamentos de Programacin II


Ejercicios Tema 3 Pgina 11

19. Suponiendo que el fichero datos existe, qu imprimir el siguiente programa si el
fichero de datos contiene los siguientes registros?
1,0
2,1
3,1
5,4
6,7
i mpor t j ava. i o. *;
i mpor t j ava. ut i l . Scanner ;
cl ass Mi Excepci on ext ends Except i on{
}
cl ass Fi cher os {
publ i c st at i c voi d mai n( St r i ng [ ] ar gs) {
doubl e var =0;
i nt i =0;
bool ean segui r =t r ue, segui r 1=t r ue;
Scanner l eer =new Scanner ( Syst em. i n) ;
RandomAccessFi l e ent r ada=nul l ;

t r y {
Syst em. out . pr i nt l n( " I nt r oduzca el nombr e del f i cher o" ) ;
ent r ada=new RandomAccessFi l e( l eer . next ( ) , " r " ) ;
}
cat ch( Fi l eNot FoundExcept i on e) {
Syst em. out . pr i nt l n( " Er r or en l a aper t ur a de dat os" ) ;
segui r =f al se;
} / / f i n pr i mer bl oque t r y- cat ch

i f ( segui r ) {
whi l e ( segui r ) {
t r y {
var =ent r ada. r eadDoubl e( ) ;
i ++;
}
cat ch( EOFExcept i on eof ) {
segui r =f al se;
}
cat ch ( I OExcept i on e) {
Syst em. out . pr i nt l n ( " Er r or en l a l ect ur a de dat os" ) ;
segui r =f al se;
segui r 1=f al se;
} / / f i n segundo bl oque t r y- cat ch
} / / Fi n del whi l e
i f ( segui r 1) {
t r y{
ent r ada. cl ose( ) ;
}
cat ch ( I OExcept i on e) {
Syst em. out . pr i nt l n( " Er r or en el ci er r e del f i cher o" ) ;
}
f i nal l y {
t r y {
i f ( i <6) t hr ow new Mi Excepci on( ) ;
Syst em. out . pr i nt l n ( var - i ) ;
}
cat ch ( Mi Excepci on mi e) {
var +=i ;
Syst em. out . pr i nt l n ( var ) ;
}/ / f i n cuar t o bl oque t r y- cat ch
}/ / f i n bl oque t r y- cat ch- f i nal l y
}/ / f i n i f segui r 1
} / / Fi n del i f segui r
} / / Fi n mt odo mai n
} / / Fi n cl ase Fi cher os} / / Fi n cl ase Fi cher os
Fundamentos de Programacin II


Ejercicios Tema 3 Pgina 12

20. Qu sentencia falta en la lnea de puntos, si queremos leer el primer entero del
cuarto registro de un fichero? Cada registro contiene dos nmeros, el primero un
entero (int, 4 bytes) y el segundo un real en precisin simple(float,4 bytes). Qu
excepciones habra que capturar si queremos quitar throws IOException de la
cabecera del mtodo main?

i mpor t j ava. i o. *;
cl ass Ar chi voAl eat or i o {
publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) t hr ows I OExcept i on{
RandomAccessFi l e ent r ada;
i nt dat o;
ent r ada = new RandomAccessFi l e( " f i cher o" , " r " ) ;

dat o=ent r ada. r eadI nt ( ) ;
}
}/ / f i n cl ase


21. En un fichero de acceso aleatorio se han escrito una serie de registros
compuestos de un campo entero (int, 4 bytes), uno real en doble precisin (double, 8
bytes) y una cadena compuesta de 2 caracteres. Sobre el fichero se aplica el mtodo
seek de la forma siguiente: fichero.seek(32). Si el contenido del fichero es:

8 20.5 aa
1 15.8 bb
3 40.9 cc
6 2.5 dd

donde cada lnea representa un registro, qu valores se leeran al hacer
fichero.readInt() seguido de fichero.readDouble() seguido de
fichero.readUTF()? Y si la sentencia fuera fichero.seek (72)?



Fundamentos de Programacin II


Ejercicios Tema 3 Pgina 13

22. Qu imprimira el siguiente programa en el caso de que
a) El fichero datos no exista?
b) la variable cont valga 5 despus de cerrar el fichero?
c) la variable cont valga 3 despus de cerrar el fichero?

i mpor t j ava. i o. *;
i mpor t j ava. ut i l . Scanner ;

cl ass Mi excepci on ext ends Except i on{
publ i c Mi excepci on( ) {
}
}/ / f i n Mi excepci on

cl ass Fi cher os {
publ i c st at i c voi d mai n( St r i ng [ ] ar gs) t hr ows I OExcept i on {
i nt ent er o, cont =0, x=10;
bool ean segui r =t r ue;
Scanner ent r ada=nul l ;

t r y {
ent r ada= new Scanner ( new Fi l eReader ( " dat os" ) ) ;
}
cat ch( Fi l eNot FoundExcept i on e) {
Syst em. out . pr i nt l n( " Er r or en l a aper t ur a de dat os" ) ;
segui r =f al se;
} / / f i n pr i mer bl oque t r y- cat ch

i f ( segui r ) {
whi l e ( ent r ada. hasNext I nt ( ) ) {
ent er o=ent r ada. next I nt ( ) ;
cont ++;
}

ent r ada. cl ose( ) ;

t r y {

i f ( cont <=4) t hr ow new Mi excepci on( ) ;
x=x+cont ;
Syst em. out . pr i nt l n ( " x=" +x) ;
}
cat ch ( Mi excepci on me) {
Syst em. out . pr i nt l n ( " cont <=4" ) ;
}/ / f i n segundo bl oque t r y- cat ch

} / / Fi n del i f

} / / Fi n mt odo mai n
} / / Fi n cl ase Fi cher os


23. Suponga que tiene un fichero de acceso directo con n registros. La longitud del
registro es de 10 bytes. Si el puntero est colocado al final del registro 3 (usando
nomenclatura 1 origen) y se pretende leer la la informacin contenida en el registro 5,
Por qu numero habra que sustituir x en la siguiente sentencia objeto.seek(x)? Y en
la sentencia objeto.skipBytes(x)?



Fundamentos de Programacin II


Ejercicios Tema 3 Pgina 14

24. Qu imprime el siguiente programa y por qu?

i mpor t j ava. i o. RandomAccessFi l e;
i mpor t j ava. i o. I OExcept i on;
cl ass Ej er ci ci o24 {
publ i c st at i c voi d mai n ( St r i ng [ ] ar gs) {
i nt i = 3;
RandomAccessFi l e f i cher o;
t r y {
f i cher o = new RandomAccessFi l e( " dat os" , " r " ) ;
f or ( i nt j = 0; j < i ; j ++) {
f i cher o. wr i t eI nt ( j ) ;
}
}
cat ch ( I OExcept i on i o) {
Syst em. out . pr i nt l n( " Er r or E/ S" ) ;
Syst em. out . pr i nt l n( i o. get Message( ) ) ;
}
}/ / f i n mai n
}

25. Aada todas las excepciones necesarias para que el siguiente mtodo no de error
si se elimina throws IOException de la cabecera del mtodo

publ i c st at i c voi d cat ( Fi l e f i l e) t hr ows I OExcept i on {
RandomAccessFi l e i nput = nul l ;
St r i ng l i ne = nul l ;
i nput = new RandomAccessFi l e( f i l e, " r " ) ;
whi l e ( ( l i ne = i nput . r eadLi ne( ) ) ! = nul l ) {
Syst em. out . pr i nt l n( l i ne) ;
}
i f ( i nput ! = nul l ) { / / Si exi st e el f i cher o
i nput . cl ose( ) ;
}
}

26. Escriba un programa que lea el primer carcter de un fichero de texto llamado
texto.txt y lo muestre por pantalla. Capture todas las excepciones que se puedan
producir

27. Construya un programa que aada en un fichero de acceso aleatorio una serie de
registros formados por un nmero de orden (de tipo int) y una cadena sin blancos
introducida por teclado. El nmero de valores a introducir vendr dado por n (siendo
n un entero introducido por teclado). Capture todas las excepciones que crea
convenientes. Qu cambios deberan realizarse en el programa si en lugar de aadir
una cadena se quisiera aadir un nmero en doble precisin?

28. Escriba un programa que acceda a un determinado registro del fichero generado
en el problema anterior y lo imprima por pantalla. El nombre del fichero y el nmero
de registro se deben pedir por teclado. Suponga que todas las cadenas contenidas en
el fichero anterior son de 4 caracteres. Capture todas las excepciones que crea
convenientes. . Qu cambios deberan realizarse en el programa si en lugar de
aadir una cadena se quisiera aadir un nmero en doble precisin?

29. Escribir un programa que lea e imprima por pantalla todos los registros de un
fichero de acceso directo cuyo nombre se introducir por teclado. Se sabe que cada
registro contiene un nmero de tipo entero, una cadena sin blancos de mximo 30
caracteres, en formato UTF y un nmero en doble precisin. Capture las excepciones
de entrada/salida de ficheros.

You might also like