Вы находитесь на странице: 1из 13

ENTRADA DE DATOS POR TECLADO EN JAVA

Entrada de datos por teclado


En java para poder escribir se emplea el objeto

System.out, pero para leer del teclado es necesario emplear System.in. Este objeto pertenece a la clase InputStream, esto significa que para leer tenemos que emplear sus mtodos, el ms bsico es read, que permite leer un carcter: char caracter = (char) System.in.read();

Pero como podemos comprobar es muy incmodo leer

de letra en letra, por ello para poder leer una lnea completa emplearemos el siguiente cdigo:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String linea = br.readLine();

En el cul creamos un InputStreamReader a partir de

System.in y pasamos dicho InputStreamReader al constructor de BufferedReader, el resultado es que las lecturas que hagamos sobre br son en realidad realizadas sobre System.in, pero con la ventaja de que se permite leer una lnea completa. Es necesario realizar un import de java.io para poder emplear esta lectura de lneas.

Adems la lnea del readLine puede lanzar Excepciones, es

por ello que hay que meterla entre instrucciones try/catch para poder gestionar el posible error: String lnea; try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); lnea = br.readLine(); }catch(Exception e){ e.printStackTrace();} System.out.println(lnea);

Lectura de string
import java.io.*; class LecturaString { public static void main(String[]args)throws IOException { BufferedReader lectura = new BufferedReader(new InputStreamReader(System.in)); String nombre; System.out.println("Ingrese su nombre: "); nombre = lectura.readLine(); System.out.println("Bienvenido "+nombre); } }

Convertir String en entero int


Si queremos leer un nmero del teclado, el usuario escribe por

ejemplo 123, con la clase BufferedReader obtendremos un String que contiene "123", es decir, tres caracteres. Eso no se parece en nada a un nmero 123. Para convertir el String en un nmero entero (sin decimales), podemos usar otra clase de Java. La clase Integer vale para muchas cosas, pero entre otras es capaz de convertir un String a int. Siempre que sea posible. Por ejemplo "abc" no se puede convertir a nmero de ninguna manera. La clase Integer es muy estricta. Para convertir el String a int necesita que el String sea exactamente un int. Cualquier caracter o letra que tenga el String y no valga, har que la conversin falle. Por ejemplo, "123a" da fallo por culpa de la "a" del final. Del mismo modo "12 3" da fallo por el espacio entre el "12" y el "3".

La conversin se realiza as

int valor = Integer.parseInt(texto); Integer.parseInt : Mtodo que convierte un string (cadena de caracteres) en un dato numrico de tipo int. Integer : Clase estndar que no necesita ser instanciada (est disponible por defecto).

Programa Lectura de numeros por teclado en JAVA:


import java.io.*; public class LecturaNum { public static void main(String[]args)throws IOException { BufferedReader lectura = new BufferedReader(new InputStreamReader(System.in)); int num; System.out.println("Ingrese numero: "); num = Integer.parseInt(lectura.readLine()); System.out.println("su numero es "+num); }// fin de main }// fin de clase lectura

import java.io.*; public class LecturaStringNum { public static void main(String[] args)throws IOException { BufferedReader lee = new BufferedReader(new InputStreamReader(System.in)); String nombre; String apellido; int edad; System.out.println("Ingrese su nombre:"); nombre = lee.readLine(); System.out.println("Ingrese su apellido:"); apellido = lee.readLine(); System.out.println("Ingrese su edad:"); edad = Integer.parseInt(lee.readLine()); System.out.println("Su nombre es:"+nombre); System.out.println("Su apellido es:"+apellido); System.out.println("Su edad es:"+edad); if (edad >=18){ System.out.println("Usted es mayor de edad"); } else { System.out.println("Usted no es mayor de edad"); } } }

Excepciones Exception Y try-catch


Cuando en java puede fallar algo, por ejemplo, la

conversin de la cadena en int, suele avisarnos. Esto lo hace "lanzando excepciones". Una excepcin es algo que lanza Java para avisarnos que ha habido un problema. En nuestro cdigo podemos "capturar" esas excepciones y hacer algo para tratar de arreglaro. Por ejemplo, si le pedimos al usuario que meta un nmero, el usuario escribe "abc", lo leemos e intentamos convertirlo a int, nos salta una excepcin. Si capturamos esa excepcin, en el cdigo que hagamos para tratarla, podemos avisar al usuario que se ha equivocado un poco al teclear, que lo intente de nuevo y volver a pedirle el nmero. Para capturar una excepcin, tenemos que hacer el cdigo as;

try

{ // Aqu el cdigo que puede fallar } catch (Exception e) { System.out.println(e); e.printStackTrace(); // Aqu el cdigo para tratar el fallo }

import java.io.*; public class SumaDos { public static void main (String [] args) throws IOException { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader (isr);

try { System.out.print("Sumando 1 : "); int s1 = Integer.parseInt(br.readLine()); System.out.print("Sumando 2 : "); int s2 = Integer.parseInt(br.readLine()); int suma=s1+s2; System.out.println ("La suma es " + s1 + "+" + s2 +"="+ suma); } catch (Exception e) { e.printStackTrace(); }

Вам также может понравиться