Vous êtes sur la page 1sur 6

Republica de Panamá

Centro Regional Universitario de


Veraguas

Licenciatura de Ingeniería en
Informática

Programación III

Laboratorio #2: Flujos de Datos

Profesor: Diego Santimateo

Integrante:
Fernando Villarreal
6-711-1562

Semestre: II

Año Lectivo: 2008


Introducción

Todo proceso de entrada y salida de datos en Java se hace a través de flujos


(streams) o secuencias continuas de datos. Un stream de entrada
(inputstream) tiene una fuente y un stream de salida (outputstream) tiene
un destino. Ambos procesos se reconocen como I/O stream. Un programa
puede obtener datos desde una fuente leyendo una secuencia de caracteres
de un stream que ha sido asociado a la fuente. De manera similar un
programa puede producir una salida, grabando o desplegando una
secuencia de caracteres a un stream de salida asociado al destino.
Existen dos tipos de streams, los de bytes y los de caracteres, las clases
para manejarlos las encontramos en el paquete java.io el cual está provisto
de una gran cantidad de ellas.
Las clases Inputstream y OutputStream manejan flujos de bytes.
Para trabajar con caracteres tenemos que recurrir a la clase Reader del
paquete java.io, que también tiene un conjunto de subclases para manejar
flujos.
Experimente

import java.io.*;
public class FlujoTeclado
{
public static void main(String args[]) throws IOException
{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
System.out.print("Teclea el primer numero: ");
String texto1=br.readLine();
int num1=Integer.parseInt(texto1);
System.out.print("Teclea el segundo numero: ");
String texto2=br.readLine();
int num2=Integer.parseInt(texto2);
System.out.println("Suma de "+num1+" y "+num2+" es "+(num1+num2));
}
}

• Pruebe el ejemplo y verifique su funcionamiento. ¿Cuál es el


objetivo del programa? Incluya un comentario que describa el
trabajo del programa.

Resp: El objetivo del programa es tomar datos desde el teclado los cuales
se leen como un flujo y luego se van transformando hasta obtener una
cadena de caracteres.
Luego esos datos se usan para realizar una pequeña suma de dos números
enteros donde las cadenas de caracteres fueron transformadas previamente
a números enteros.

• Compile el programa anterior sin usar throws IOException. ¿Qué


ocurrió? ¿Qué método se asoció al error producido?

Resp: A la hora de compilar el programa se produjeron dos errores.


El método que se asocio al error producido fue el readline(), es decir el
método que permite leer desde el teclado, hechas las transformaciones
necesarias.
• Analice el programa anterior, identifique clases, objetos y métodos.

Resp: En el programa anterior tenemos la clase FlujoTeclado, de la cual


partimos con el programa, la clase reader la cual se usa a la hora de trabajar
con caracteres pues contiene un conjunto de subclases para manejar flujos,
la clase InputStreamReader la cual nos da los caracteres sueltos, y la clase
BufferedReader si queremos capturar toda la cadena o línea.
Entre los métodos tenemos:
El readline () con el cual leemos datos desde el teclado y el Integer.parseInt
() con el cual transformamos un carácter numérico a entero.
Y los objetos creados son dos :
El isr y el br para las transformaciones de los bytes obtenidos desde el
teclado.

• Coloque nuevamente throws IOException y provoque un error


introduciendo una letra como segundo valor capturado. ¿Qué
ocurrió?

Resp: El compilador nos da una serie de errores ya que a la hora de


capturar los datos se transforman a enteros y por tanto un carácter que no
sea numérico no puede ser transformado a entero.

• Considere el siguiente ejemplo y provoque nuevamente un error:


¿Cuál fue la diferencia?

Resp: Ocurre lo mismo solo que la diferencia es que los mensajes de error
podemos controlarlos nosotros mismos y no el compilador.

import java.io.*;
public class FlujoTeclado{
public static void main(String args[])throws IOException{
try {
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
System.out.print("Teclea el primer numero: ");
String texto1=br.readLine();
int num1=Integer.parseInt(texto1);
System.out.print("Teclea el segundo numero: ");
String texto2=br.readLine();
int num2=Integer.parseInt(texto2);
System.out.println("Suma de "+num1+" y "+num2+" es "+(num1+num2));
} catch(Exception e) {
System.out.println( "Error en la captura****" );
}}}

• 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ó?

Resp: Las excepciones son errores que se pueden producir a la hora de


ejecutar un programa. Un buen programador debe siempre omitir estos
errores ya que perjudican el funcionamiento del código diseñado.
El try nos encierra el codigo en el cual puede darse un error a la hora de
ejecutar el programa por tanto usamos el catch para indicar los errores
mediante nuestros propios mensajes y no por el compilador.
Conclusión

Con este laboratorio aprendimos a leer desde el teclado los datos que son
necesarios a la hora de ejecutar un código en java.
Concluí que dichos datos se deben leer después de haber transformados los
objetos a los cuales se lo asignaremos.
Es importante señalar que java maneja excepciones a la hora de introducir
los datos, ya que mediante un mensaje se puede probar que ha habido un
error de entrada, muy por el contrario cuando usábamos el lenguaje c pues
los datos se podían alterar y no había forma de poderlo indicar mediante
una línea de código. Esto permite que el código sea más factible en algunos
lenguajes que en otros.

Vous aimerez peut-être aussi