feed twitter facebook LinkedIn facebook

Java » Lectura de datos por consola en Java

diciembre 16, 2006 por Víctor Cuervo 17 Comentarios Imprimir Imprimir

Para realizar lecturas de datos por consola en Java debemos de apoyarnos sobre la clase System. Y en concreto sobre System.in. Si accedemos directamente sobre dicha clase, lo que obtendremos serán lecturas de caracteres. Es por ello que tenemos que ver como facilitar esta lectura.

Para realizar una lectura de datos más sencilla y hacerlo mediante cadenas de caracteres (String) debemos de de utilizar un Buffer de lectura. En este caso nos apoyaremos sobre la clase BufferedReader.

Todo código que realice una lectura de streams, en este caso por la consola, se monta mediante wrapping de clases. Es decir, sobre la consola, montamos un input stream (InputStreamReader), y sobre este un Buffer (BufferedReader). Veámos como es la línea de código:

br = new BufferedReader(new InputStreamReader(System.in));

Manejar el buffer es muy sencillo ya que simplemente deberemos de ejecutar lecturas por línea.

sTexto = br.readLine();
System.out.println(sTexto);

Y ¿cuando acabar? Pues deberemos de escoger una palabra que denote que es la última a introducir por la consola. Eso si queremos que el programa no sea infinito. En nuestro caso, no hemos puesto mucha imaginación. Ya que la palabra ha sido “FIN”.

do {
  sTexto = br.readLine();
  System.out.println(sTexto);
} while(!sTexto.equals("FIN"));

Visualizar el ejemplo | Descargar los datos

tags: ,

Artículos relacionados:

17 comentarios »

RSS feed para los comentarios de esta entrada. TrackBack URI

1 2
  1. Ric
    enero 3, 2007 #

    Sencillo pero bueno para empezar

  2. Fernando
    mayo 4, 2007 #

    cual es la diferencia entre usar este metodo para leer Strings desde consola a usar un objeto de la clase Scanner??, cual es mejor???. Tengo un codigo en el cual utilizo scanner para leer datos desde pantalla, pero parece que me trae problemas porque el programa se cuelga a veces sin razon justo cuando esta leyendo datos.
    Quisiera saber cuál es mejor.

  3. Jordi
    octubre 29, 2007 #

    El enlace para descargar el código fuente no funciona.
    Gracias.

  4. lineadecodigo
    octubre 29, 2007 #

    @jordi,

    Muchas gracias por el aviso. Ya está solucionado.

  5. Manuel Calle
    octubre 31, 2007 #

    bueno te cuento q soy nuevo en esto de java y estoy buscando como hacer un archivo plano pero no he podido encontrar una informacion q a mi nivel pueda entender si me pudieras explicar mejor lo que explicaste antes te agadeceria mucho yo uso eclipse para hacer los programas

    correo: callemanuel@hotmail.com

  6. Santiago Henao Toro
    febrero 15, 2009 #

    Necesito saber cual es la diferencia entre el Buffer y el Scanner.

  7. Kelvin
    septiembre 25, 2009 #

    Scanner y BufferedReader te permiten leer valores desde consola pasando directa o indirectamente un objeto System.in. Una diferencia es que para leer nuevos valores de consola con Scanner debes crear un objeto Scanner nuevo pasando System.in. Con BufferedReader no sucede así, ya que puedes leer nuevos valores utilizando la misma referencia llamando al metodo read() o readLine(). Scanner tiene una ventaja es que puedes separar una cadena en subcadenas usando un delimitador con el metodo useDelimiter(String) ademas de que puede leer directamente valores Integer, Double u otros usando los metodos nextInt(), nextDouble(),etc…; esto no lo tiene BufferedReader. Asi que depende de tu programa utiliza uno u otro pensando en las ventajas y desventajas de cada una. mas informacion de clase Scanner en http://acercadejava.blogspot.com/2009/04/la-clase-scanner-de-java-5.html. Espero te haya ayudado

  8. Rych
    diciembre 11, 2009 #

    gente hola soy principiante necesito ayuda observen que hice mal:
    (por cierto se trata de leer dos datos desde el teclado y usar métodos ando perdido)…

    import java.io.*;
    public class Rectangulo_Funcion{
    public static void main(String args[])
    throws java.io.IOException{
    String cadena;

    DataInputStream recibeDatos = new DataInputStream(System.in);
    Rectangulo_Funcion Obj_Rectangulo=new Rectangulo_Funcion();
    Obj_Rectangulo.Procesa_Rectangulo();

    }
    double base=0, altura=0, area=0, perimetro=0;
    void Procesa_Rectangulo() {
    while(base!=99999){
    //_______________________________________________________
    //Captura la Base desde el Teclado
    System.out.println(“\n Programa No. 1 (Rectángulo) “);
    System.out.println(“Base=99999 Para salir del programa”);
    System.out.println(“———————————-”);

    do{
    System.out.print (“Base: “);
    cadena=recibeDatos.readLine();

    try{
    base=Double.parseDouble(cadena);
    if(base<=0){
    System.out.println ("Dato incorrecto");
    System.out.println ("——————");
    }
    }catch(NumberFormatException e){
    System.out.println("Debe introducir un valor positivo");
    System.out.println ("——————————–");

    }
    }while(base<=0);

    if(base==99999) continue;

    //_______________________________________________________
    //Captura la Altura desde el Teclado

    do{
    System.out.print ("Altura: ");
    cadena=recibeDatos.readLine();

    try{
    altura=Double.parseDouble(cadena);
    if(altura<=0){
    System.out.println ("Dato incorrecto");
    System.out.println ("—————-");
    }
    }catch(NumberFormatException e){
    System.out.println("Debe introducir un valor positivo"); System.out.println ("——————————–");
    }
    }while(altura<=0);
    Obj_Rectangulo.Procesar();
    Obj_Rectangulo.Imprimir();
    }
    }

    void Procesar(){
    area=base*altura;
    perimetro=base*2+altura*2;

    }

    void Imprimir(){
    System.out.println("\nResultados");
    System.out.println("————-");
    System.out.println("Area…..= "+area);
    System.out.println("Perímetro= "+perimetro+"\n\n");
    }
    }

  9. Miguel R.
    mayo 17, 2010 #

    hola ocupo en java un codigo que me permita leer los datos de un archivo txt y poder utilizar los datos del archivo dentro de mi programa!!
    Saludos!!

  10. alexander
    octubre 30, 2010 #

    lectura de datos:

    int n;
    String nom;
    System.our.println(“ingrese numero”);
    n=Integer.parseInt(br.readLine());
    System.our.println(“ingrese nombre”);
    nom=(br.readLine());

    visita:
    http://www.programandoconjava.es.tl

1 2

Deja un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*