Professional Documents
Culture Documents
En java la entrada, al igual que la salida de realiza mediante flujos, por flujo se entiende a las secuencias de datos que provienen desde una fuente, como por ejemplo el teclado. Los flujos actan como intermediarios entre el programa y el origen o destino de la informacin que ste lee o escribe en el flujo y puede hacer abstraccin sobre la naturaleza de la fuente.
Para poder introducir datos mediante flujos utilizaremos la biblioteca java.io, esta ser declarada al principio antes de la clase, y la sintaxis es de la siguiente forma:
import java.io.*;
Un flujo (stream) es una conexin a un fuente o un destino de datos Hemos visto como se puede imprimir un dato a la pantalla mediante la instruccin System.out.println() System.out es un ejemplo de un flujo estndar de salida (outstream) Tambin hay un flujo estndar de entrada (instream) llamado System.in
//leyendo caracteres import java.io.*; public class Letras { public static void main(String argS[]) throws IOException { char primero, ultimo; System.out.println("Introduzca su primera y ultima inicial:"); System.out.flush(); primero = (char)System.in.read(); ultimo = (char)System.in.read(); System.out.print("hola,"+primero+"."+ ultimo+"\n"); } //cierra main } //cierra class
La entrada de datos en Java se efecta mediante la lectura de bytes, la entrada bsica de suele realizarse mediante el mtodo readLine () que pertenece a la clase BufferedReader, el cual se encarga de leer una secuencia de caracteres y devuelve una cadena. Para esto se debe construir un objeto de la clase BufferedReader sobre otro de la clase InputStreamReader el cual debe de estar asociado a System.in, mismo que se va a encargar de convertir a cadena los bytes ledos desde el teclado. Nos quedar algo de la siguiente forma.
Donde la palabra entrada puede ser sustituida por otra que el programador considere a su gusto.
Lectura de una cadena y conversin de la cadena en nmero. Cuando tratamos con valores numricos de tipo int o long aplicaremos los siguientes mtodos que proporcionan un mecanismo de conversin adecuado.
Integer.parseInt Integer.parseLong
//Leyendo enteros int dato; // creando un objeto llamado entrada especializado en capturas BufferedReader entrada = new BufferedReader ( new InputStreamReader(System.in)); System.out.println("Introduzca un dato entero:"); System.out.flush(); dato=Integer.parseInt(entrada.readLine()); System.out.print("hola,el dato que escribiste es: "+dato+".!\n");
import java.io.*; public class EnteroDouble{ public static void main (String a[]) throws IOException { double dato; // creando un objeto llamado entrada especializado en capturas
} }
BufferedReader entrada = new BufferedReader ( new InputStreamReader(System.in)); System.out.println("Introduzca un dato double:"); System.out.flush(); dato=Double.parseDouble(entrada.readLine()); System.out.print("hola,el dato que escribiste es: "+dato+"\n");
Ejercicio
Repetir el ejercicio : Elaborar un programa en Java para calcular el promedio de calificaciones de un estudiante que cursa 5 experiencias educativas, debe incluir el mtodo constructor que establezca el nombre del alumno. Slo que ahora en el mtodo calcular promedio mediante un for van a leer cada una de las 5 calificaciones (de tipo entero).
Leyendo cadenas de caracters String nom; BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in)); // capturando datos System.out.println("dame nombre: "); nom=teclado.readLine();
//Leyendo Float y Double double base, altura; Float d; BufferedReader entrada = new BufferedReader ( new InputStreamReader(System.in)); System.out.println("Base del Triangulo:"); System.out.flush(); d= Float.valueOf(entrada.readLine()); //Double.valueOf(entrada.read.. base= d.floatValue(); //base=d.doubleValue(); //Ahora se pide la altura System.out.println("Altura del Triangulo:"); System.out.flush(); d =Float.valueOf(entrada.readLine()); altura=d.floatValue(); System.out.print("hola, el area es = "+base*altura/2);