Sunteți pe pagina 1din 4

SERVICIOS DE RED E INTERNET 2016/17

UNIDAD 3 - Lectura de Teclado

ÍNDICE
1.- La clase InputStreamReader
2.- La clase Scanner

1.- La clase InputStreamReader

Antes de java 1.5, la forma de leer más fácilmente cosas que no sean bytes
(leer cadenas de texto o números), era usar las clases InputStreamReader y
BufferedReader conjuntamente. La primera es capaz de convertir esos bytes a
caracteres. La segunda es capaz de leer hasta un fin de línea. La forma de
instanciar estas clases para usarlas con System.in es la siguiente:

InputStreamReaderisr = new InputStreamReader(System.in);


BufferedReaderbr = new BufferedReader (isr);

Con esto, podemos leer líneas completas usando el BufferedReaderbr. Así, por
ejemplo, escribimos una A, con

String cadena = br.readLine();

En este ejercicio vamos a introducir el nombre desde teclado y después vamos


a mostrar un mensaje de bienvenida.

package ejercicios;
import java.io.*;
publicclassmensaje {
publicstaticvoid main(String[] arg) throwsIOException
{ {
InputStreamReaderisr =
newInputStreamReader(System.in);
BufferedReaderbr = newBufferedReader (isr);
System.out.print("Nombre: ");
String cadena = br.readLine();
System.out.print("Hola " + cadena);
}
}
}

1
SERVICIOS DE RED E INTERNET 2016/17

El resultado de su ejecución en Eclipse es el siquiente

Sin embargo, necesitamos hacer la conversión si queremos leer números. Por


ejemplo, si escribimos un entero 32, en cadena obtendremos "32". La
conversión se haría con

int edad = Integer.parseInt (br.readLine());

En el siguiente ejemplo hacemos uso de algunas operaciones entre enteros


para comprobar que la conversión se ha realizado

package ejercicios;
import java.io.*;
public class mensaje {
public static void main(String[] arg) throws IOException
{
{
InputStreamReaderisr = new
InputStreamReader(System.in);
BufferedReaderbr = new BufferedReader (isr);
System.out.print("Nombre: ");
String cadena = br.readLine();
System.out.println("Hola " + cadena);
System.out.print("Edad: ");
int edad = Integer.parseInt (br.readLine());
edad++;
System.out.print("El año que viene tendrás " + edad + "
años");
}
}
}

2
SERVICIOS DE RED E INTERNET 2016/17

El resultado sería el siguiente

2.- La clase Scanner

Desde java 1.5 tenemos disponible para facilitarnos toda esta tarea, la clase
Scanner. Basta instanciar esta clase pasándole el System.in y a partir de ahí
tememos muchos métodos para obtener exactamente lo que queremos. Por
ejemplo, podemos leer la A así

Scanner sc = new Scanner(System.in);


String cadena = sc.nextLine();

Y para convertir a entero

int entero = sc.nextInt();

Repetimos el ejercicio anterior con esta nueva clase.

package ejercicios;
import java.io.*;
importjava.util.*;
publicclassmensaje {
publicstaticvoid main(String[] arg) throwsIOException
{
{
Scanner sc = newScanner(System.in);
System.out.print("Nombre: ");
String cadena = sc.nextLine();
System.out.println("Hola " + cadena);
System.out.print("Edad: ");
intedad = sc.nextInt();
edad++;
System.out.print("El año que viene tendrás " + edad + "
años");
}
}
}

3
SERVICIOS DE RED E INTERNET 2016/17

Y el resultado sería

No olvides que esta clase está incluida en java.util

Esta clase admite radix en los formatos de números. Por defecto es base 10
pero podemos trabajar en Hexadecimal escribiendo el radix 16

package ejercicios;
import java.io.*;
importjava.util.*;
publicclassmensaje {
publicstaticvoid main(String[] arg) throwsIOException
{
{
Scanner sc = newScanner(System.in);

System.out.print("Introduce un número en HEX: ");


intnumero = sc.nextInt(16);

System.out.print("El número introducido es " + numero+ "


HEX");
}
}
}
Cuyo resultado sería

S-ar putea să vă placă și