BufferedReader

Los programas de java realizan su entrada y salida a través de flujos.
Podemos decir que flujo es una abstración que produce y consume información.
Todos los flujos se comportan de la misma manera, aunque sean dispositivos.
Dado esto todos los métodos y clases de entrada y salida se pueden aplicar a cualquier tipo de dispositivos.
Es decir que si queremos utilizar un método para escribir en consola también lo podemos emplear para escribir en un archivo en el disco.

Para este caso estaremos viendo la lectura de un teclado empleado las clases BufferedReader ,InputStreamReader y System.

BufferedReader: Es una clase del paquete java.io que permite manejar el flujo de caracteres de entrada almacenado en búfer.
Con esta clase podemos leer u obtener los datos introducidos mediante el teclado y también los datos que se encuentren en la primera línea de un archivo.

InputStreamReader: Es una clase del paquete java.io que permite traducir los bytes, capturados a caracteres. Para usar la internacionalización con caracteres acentuados y demás podemos agregar la codificación ISO-8859-1.

System: Es una clase del paquete java.lang, java.lang es un paquete que todos los programas importan automáticamente, esta clase tiene 3 variables declaradas de manera public y static, esto permite que se pueda emplear sin crear realizar una instancia en especifico. Estos métodos son in,out y err.
in: este campo hace referencia a la entrada estándar que viene siendo el teclado.
out: este campo hace referencia a la salida estándar que viene siendo la consola.
err : Este campo hace referencia al flujo de error estándar que viene siendo la consola.

Crearemos una clase de nombre Teclado, y le agregaremos un método de nombre lectura()




import java.io.BufferedReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Teclado {

    public static String lectura() throws IOException {
        String dato = "";
        BufferedReader leer;
        leer =
                new BufferedReader(new InputStreamReader(System.in,"ISO-8859-1"));
        dato = leer.readLine();

        return dato;
    }   
}


Luego le agregamos el método main


public static void main(String arg[]) {
        try {
            System.out.print("Introduza su nombre : ");
            String lectura = Teclado.lectura();
            System.out.println("Su nombre es ==> "
                    + lectura);
        } catch (IOException ex) {
            System.err.println("Error causado durante la lectura ==  >" + ex);
        }
    }





Código completo



import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Teclado {
public static String lectura() throws IOException {
String dato = "";
BufferedReader leer;
leer  = 
new BufferedReader(new InputStreamReader(System.in));
dato = leer.readLine();
return dato;
}

public static void main(String arg[]){
try {
System.out.print("Introduza su nombre : ");
String lectura = Teclado.lectura();
System.out.println("Su nombre es ==> " + lectura);
} catch (IOException ex) {
System.err.println("
Error causado durante la lectura ==>" + ex);
}
}
}

No hay comentarios: