Wednesday, June 4, 2008

Entarada de Datos en Java

Siempre he pensado que es un dolor de cabeza estar implementado métodos de entrada de datos como: scanner o buffered reader, así que dejo a disposición de ustedes la clase “entrada”, la cual puede capturar errores y en caso de una implementación, usar la suerte de poder salir de manera muy elegante.

/**
*
* @author rodrigo salado anaya
*/
import java.io.IOException;

public class ejem {
    public static void main(String[] args) {

        entrada io = new entrada();

        int a = io.setInt(“a = “);
        if(a == -1){
            return;
        }

        float b = io.setFlo(“b = “);
        double c = io.setDou(“c = “);
        String d = io.setStr(“n = “);
        char e = io.setChar(“s/n: “);
    }
}

class entrada {
    public int setInt(String text) {
        java.io.BufferedReader e =
            new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
        int intD = -1;
        boolean v = true;
        String buff = “”;
        do {
            try {
                System.out.print(text);
                buff = e.readLine();
                buff = buff.toLowerCase();
                if (buff.equals(“salir”)) {
                    e = null;
                    text = null;
                    buff = null;
                    return -1;
                }
                intD = Integer.parseInt(buff);
                buff = null;
                v = false;
            } catch (java.io.IOException ex) {
                System.out.println(“Ingrese un Número entero!!!”);
                buff = null;
                v = true;
            } catch (NumberFormatException ex) {
                System.out.println(“Ingrese un Número entero!!!”);
                buff = null;
                v = true;
            }
        } while (v);
        e = null;
        text = null;
        buff = null;
        return intD;
    }

/************************************************/
    public float setFlo(String text) {
        java.io.BufferedReader e =
            new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
        float floD = -1f;
        boolean v = true;
        String buff = “”;
        do {
            try {
                System.out.print(text);
                buff = e.readLine();
                if (buff.equals(“salir”)) {
                    e = null;
                    text = null;
                    buff = null;
                    return -1;
                }
                floD = Float.parseFloat(buff + “d”);
                buff = null;
                v = false;
                } catch (java.io.IOException ex) {
                    System.out.println(“Ingrese un Número decimal!!!”);
                    buff = null;
                    v = true;
                } catch (NumberFormatException ex) {
                    System.out.println(“Ingrese un Número decimal!!!”);
                    buff = null;
                    v = true;
                }
            } while (v);
            e = null;
            text = null;
            buff = null;
            return floD;
        }

/************************************************/

    public double setDou(String text) {
        java.io.BufferedReader e =
            new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
        double douD = -1d;
        boolean v = true;
        String buff = “”;
        do {
            try {
                System.out.print(text);
                buff = e.readLine();
                if (buff.equals(“salir”)) {
                    e = null;
                    text = null;
                    buff = null;
                    return -1;
                    }
                    douD = Double.parseDouble(buff + “d”);
                    buff = null;
                    v = false;
                } catch (java.io.IOException ex) {
                    System.out.println(“Ingrese un Número decimal!!!”);
                    buff = null;
                    v = true;
                } catch (NumberFormatException ex) {
                    System.out.println(“Ingrese un Número decimal!!!”);
                    buff = null;
                    v = true;
                }
            } while (v);
            e = null;
            text = null;
            buff = null;
            return douD;
        }
/************************************************/
    public char setChar(String text) {
        java.io.BufferedReader e =
            new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
        char strC = ‘n’;
        boolean v = true;
        do {
            try {
                System.out.print(text);
                if (text.contains(“salir”)) {
                    e = null;
                    text = null;
                    return ‘n’;
                }
                strC = (char) e.read();
                e.readLine();
                e = null;
                v = false;
            } catch (java.io.IOException ex) {
                System.out.println(“ErrorIOE: e_setChar_1″ + ex);
                v = true;
            } catch (NumberFormatException ex) {
                System.out.println(“ErrorIOE: e_setChar_2″ + ex);
                v = true;
            }
        } while (v);
        e = null;
        text = null;
        return strC;
    }

/************************************************/
    public String setStr(String text) {
        java.io.BufferedReader e =
            new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
            String strD = “-1″;
            boolean v = true;
            do {
                try {
                    System.out.print(text);
                    strD = strD.toLowerCase();
                    if (strD.equals(“salir”)) {
                        e = null;
                        text = null;
                        strD = null;
                        return “-1″;
                }
                strD = e.readLine();
                v = false;
                } catch (IOException ex) {
                    System.out.println(“ErrorIOE: e_setStr_1″ + ex);
                    v = true;
                } catch (NumberFormatException ex) {
                    System.out.println(“ErrorIOE: e_setStr_2″ + ex);
                    v = true;
                }
            } while (v);
            e = null;
            text = null;
            return strD;
        }
}

Por: Rodrigo Salado Anaya.

Posted by trade at 01:35:37
Comments

Leave a Reply