Está en la página 1de 7

UNIVERSIDAD DE PANAMÁ

CENTRO REGIONAL UNIVERSITARIO DE VERAGUAS

FACULTAD DE INFORMÁTICA ELECTRÓNICA Y COMUNICACIÓN


(FIEC)

INF.222

PROGRAMACIÓN ORIENTADA A OBJETOS

LABORATORIO #2

“ENTRADA Y SALIDAS DE DATOS A TRAVÉS DE FLUJOS”

PROFESOR

DIEGO SANTIMATEO

ESTUDIANTE

ÁNGEL AGUILAR 8-821-2269

II AÑO

II SEMESTRE

2008
INTRODUCCIÓN

En java para poder escribir se emplea el objeto System.out, pero para leer del teclado, es decir intro-
ducir desde teclado es necesario emplear System.in. Este objeto pertenece a la clase InputStream,
esto significa que para leer tenemos que emplear sus métodos, el más básico es read, que permite
leer un carácter.
En este momento solo se pueden leer caracteres pero como se sabe que es muy incómodo leer ca-
rácter a carácter, es por ello para poder leer una línea completa se hace uso de la clase
BufferedReader
En el cuál se crea un InputStreamReader a partir de System.in y pasamos el InputStreamReader al
constructor de BufferedReader, para que la lectura que se haga sobre el objeto creado en ese momen-
to sea en realidad realizadas sobre System.in, para que a la final el resultado sea leer una línea com-
pleta.

GUÍA DE LABORATORIO
1. Pruebe el ejemplo 1, y verifique su funcionamiento. ¿Cuál es el objetivo del programa?
Incluya un comentario que describa el trabajo del programa.

2. Compile el programa anterior sin usar throws IOException. ¿Qué ocurrió? ¿Qué método se
asoció al error producido?

3. Analice el programa anterior, identifique clases, objetos y métodos.

4. Coloque nuevamente throws IOException y provoque un error introduciendo una letra como
segundo valor capturado. ¿Qué ocurrió?
.
5. Considere el siguiente ejemplo y provoque nuevamente un error:
¿Cuál fue la diferencia?
import java.io. *;
public class FlujoTeclado {
public static void main (String args []) throws IOException {
try {
//Creación del flujo para leer datos - caracteres
InputStreamReader isr=new InputStreamReader (System.in);

//Creación del filtro para leer cadena de caracteres


BufferedReader br=new BufferedReader (isr);
System.out.print ("Teclea el primer numero: ");

//Lectura de datos mediante el método readLine ()


String texto1=br.readLine ();

//Conversión a int de la String anterior para poder sumar


int num1=Integer.parseInt(texto1);

System.out.print ("Teclea el segundo numero: ");


String texto2=br.readLine();
int num2=Integer.parseInt(texto2);

//Sumar los dos enteros


System.out.println("Suma de "+num1+" y "+num2+" es "+(num1+num2));
} catch (Exception e) {
System.out.println (“Error en la captura****”);
}
} //fin del main
}
6. Reflexione sobre la utilidad del manejo de las excepciones con el try… catch. ¿Qué entendió
como excepción? ¿Cuál es la función del try y cuál la del catch? ¿En qué referencia se
apoyó?

RESULTADOS DE LA EXPERIENCIA
1- )
Ejemplo 1
import java.io.*;
public class FlujoTeclado {
public static void main (String args []) throws IOException{

//Creación del flujo para leer datos - caracteres


InputStreamReader isr=new InputStreamReader (System. in);

//Creación del filtro para leer cadena de caracteres


BufferedReader br=new BufferedReader (isr);
System.out.print ("Teclea el primer numero: ");

//Lectura de datos mediante el método readLine ()


String texto1=br.readLine ();

//Conversión a int de la String anterior para poder sumar


int num1=Integer.parseInt(texto1);

System.out.print ("Teclea el segundo numero: ");


String texto2=br.readLine();
int num2=Integer.parseInt(texto2);

//Sumar los dos enteros


System.out.println("Suma de "+num1+" y "+num2+" es "+(num1+num2));
COMPILACIÓN Y EJECUCIÓN DEL PROGRAMA

R Una vez compilado el programa el objetivo del código es sumar dos números, se crea el
flujo para leer datos ya que los datos son introducidos por teclado y se usa System.in.

2- ) RCompilando el programa anterior sin usar throws IOException ocurrió que envió errores,
ya que esta función debe existir cuando haya entradas y salidas por defectos y el método asociado al
error producido es readLine.
COMPILACIÓN DERL PROGRAMA SIN EL THROWS IO EXCEPTION

3- ) RAnalizando el programa anterior se identificaron como clases, objetos y métodos lo


siguientes:

CLASE OBJETOS MÉTODOS


Inputstreamreader system.in readline()
bufferedreader isr integer.parseint
br throws ioexception

4- ) R Colocando nuevamente throws IOException se provocó un error introduciendo una letra


como segundo valor capturado y lo que pasó fue que no se realizó la suma correctamente porque un
carácter no se puede convertir a un entero.

COMPILACIÓN COLOCANDO NUEVAMENTE EL THROWS IOEXCEPTION

5- ) Considerando el ejemplo
import java.io.*;
public class FlujoTeclado {
public static void main (String args []) throws IOException{
try {
//Creación del flujo para leer datos - caracteres
InputStreamReader isr=new InputStreamReader (System.in);

//Creación del filtro para leer cadena de caracteres


BufferedReader br=new BufferedReader (isr);
System.out.print ("Teclea el primer numero: ");

//Lectura de datos mediante el método readLine ()


String texto1=br.readLine ();

//Conversión a int de la String anterior para poder sumar


int num1=Integer.parseInt(texto1);

System.out.print ("Teclea el segundo numero: ");


String texto2=br.readLine();
int num2=Integer.parseInt(texto2);

//Sumar los dos enteros


System.out.println("Suma de "+num1+" y "+num2+" es "+(num1+num2));
} catch (Exception e) {
System.out.println ("Error en la captura****");
}
} //fin del main
}
COMPILACIÓN UTILIZANDO TRY Y CATCH

R Al provocar en este programa un error la diferencia que se vio fue que este dice porque se
produjo dicho error.

6- ) R Reflexionando sobre la utilidad del manejo de excepciones TRY y CATCH se entiende por
excepción aquellas condiciones que están destinadas a la detección de errores, en este caso la
función del TRY es que siempre se ejecuta, es decir, el código en donde pueden producirse las
excepciones y el CATCH es código que se ejecuta cuando se produce una excepción.
Referencia en: www.cica.es/formacion/JavaTut/Cap6/excep.html
CONCLUSIÓN

Para finalizar se puede decir que el flujo es como un rió cuyo contenido son los datos que se quieran
procesar. Lo que permite que esos datos viajen es el río, es decir, el flujo. En el caso de la captura,
desde un programa Java, de datos introducidos por un usuario mediante teclado, para que sean pro-
cesados en el programa. Además el flujo u objeto InputStreamReader es lo que permite leer datos el Sys-
tem.in u objeto InputStream es el argumento del constructor de InputStreamReader y modela el origen de los
datos que se leen, es decir, el teclado filtro u objeto BufferedReader permite, mediante la utilización del méto-
do String readLine(), leer de forma óptima del flujo.