jueves, 1 de septiembre de 2011

Ejercicio función totaliza

Realizar la siguiente función:
  • static int totaliza (Reader in). Recibe un flujo de datos de tipo "Reader" y lee los números enteros que contiene. La función irá sumando estos números hasta tener el total, que es el dato que se retorna.
Si se produce error al leer alguna línea y pasarlo a entero, se atrapará la excepción y se sacará un mensaje con el número de la línea que no se ha leído.
Se añade el programa principal con el que se probó la función.

public class EjercicioFlujo3 {
    public static void main (String [] args) throws FileNotFoundException, IOException {
        String ruta="/home/veronica/Documentos/fichero";
        int total;
        FileReader leerFich = new FileReader(ruta);
        total=totaliza(leerFich);
        leerFich.close();
        System.out.println(total);
    }
    public static int totaliza (Reader in) throws IOException {
        int resultado=0;
        int linea=1;
        String num;
        BufferedReader aux = new BufferedReader(in);
        while ((num=aux.readLine()) != null) {
            try {
                resultado += Integer.parseInt(num);
            }
            catch(NumberFormatException e) {
                System.err.println("Fallo en la línea: "+linea);
            }
            linea++;
        }
        aux.close();
        return resultado;
    }
}

No hay comentarios:

Publicar un comentario