sábado, 2 de octubre de 2010

Leer.java lectura de datos en Java

La clase Leer.java contiene métodos estáticos que nos permiten la lectura por teclado de datos primitivos y objetos cadenas de caracteres o String.

Aunque existen maneras mas sofisticadas de leer datos por teclado en Java como la de el uso del objeto Scanner, esta clase ayuda a la enseñanza de el lenguaje Java en sus inicios en programación, además esta clase se la usaba en las materias de programación de primeros semestres de la carrera de Informática de la Universidad Mayor de San Andrés.

La clase Leer contiene métodos estáticos: dato() que retorna un String leido por teclado,datoInt() retorna un int, datoLong() retorna un long, datoFloat() retorna un float y datoDouble() retorna un double.

import java.io.*;

public class Leer
{
   public static String dato ()
   {
      String x = "";
      try
      {
         InputStreamReader isr = new InputStreamReader (System.in);
         BufferedReader in = new BufferedReader (isr);
         x = in.readLine ();
      }
      catch (IOException e)
      {
         System.err.print ("Error: " + e.getMessage ());
      }
      return x;
   }
   public static int datoInt ()
   {
      try
      {
         return Integer.parseInt (dato ());
      }
      catch (NumberFormatException e)
      {
         return 0;
      }
   }
   public static float datoLong ()
   {
      try
      {
         return Long.parseLong (dato ());
      }
      catch (NumberFormatException e)
      {
         return 0l;
      }
   }
   public static float datoFloat ()
   {
      try
      {
         return (new Float (dato ())).floatValue ();
      }
      catch (Exception e)
      {
         return Float.NaN;
      }
   }
   public static double datoDouble ()
   {
      try
      {
         return (new Double (dato ())).doubleValue ();
      }
      catch (Exception e)
      {
         return Double.NaN;
      }
   }
}

Algunos de ejemplos de lectura de datos serias los siguientes:

int entero = Leer.datoInt();
double real = Leer.datoDouble();
String cadena = Leer.dato();

Para la lectura de datos char (caracteres), primero podemos leer un String (cadena de caracteres) y extraerle el primer carácter con el método que nos proporciona la clase String, charAt(int) que retorna un char (carácter) y le mandamos la posición a extraer en este caso como la enumeración en Java empieza en 0 (primera posición) le mandamos este, ejemplo:

char caracter = (Leer.dato()).charAt(0);

Para utilizar la clase Leer en nuestros programas será necesario que este en el mismo directorio de las otras clases que utilicen esta lectura de datos.

Descargar Código Fuente (.java)

14 comentarios:

  1. Usar el objeto Scanner es otra opción pero esta solo disponible desde la versión 1.4 del JDK o JRE.

    ResponderEliminar
  2. Muy pronto un guía de como usar el objeto Scanner para la lectura de datos.

    ResponderEliminar
  3. ok gracias pero es una basura ese codigo, no sirve para nada actualizatee

    ResponderEliminar
  4. Holas gracias por la visita al blog, y ese código si sirve para algo, si aclaro en el post que es una forma antigua de leer datos para las anteriores versiones de Java y es cierto que nadie debería de utilizarlo hoy en día. Pero todo sirve para algo. :)

    ResponderEliminar
  5. Hola! Muchas gracias por el aporte ;) Más de alguna vez lo usé jejeje :) Saludos.-

    ResponderEliminar
  6. ahhhh el objeto Scanner es una mierda... prefiero la clase Leer.java

    ResponderEliminar
  7. Gran tristeza de que java no disponga de cosas mas simples para lectura por teclado..

    ResponderEliminar
  8. Estudio informatica y soy novato todavia, como leo un caracter con el objeto Scanner ? me gustaria saber como con este objeto!

    ResponderEliminar
  9. Me ayudo mucho este ejemplo. Mil gracias.

    ResponderEliminar
  10. hi...

    una versión algo mejorada

    [code]
    public static float real()
    {
    float x=0;
    boolean ok;

    do {
    ok=true;

    try {

    String miCadena = br.readLine();
    x = Float.parseFloat(miCadena);

    } catch ( Exception e ) {ok=false; }
    } while ( !ok );

    return x;
    }
    [/code]

    Saludos un blog genial.

    V

    ResponderEliminar

Deja tu comentario, agradecimiento, sugerencia o critica.