0

Hola he tenido problemas con sacar el promedio de un archivo txt, se lee el archivo pero al momento de querer sacar el promedio sucede esto...

Sucede esto...

package LeePromediosTXT;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.StringTokenizer;

/**
 *
* @author Maquina 14578
*/
public class TxtPromedios {

    public String rutaLeer;
    public String rutaEscribir;
    public String nomArchivo;
    public String alumnos[];
    public int calificacion[];
    public double promedio[];

    public TxtPromedios() {

    }

    public void leerArchivo(String nomArchivo) {

        try {
            File f = new File(nomArchivo);
            FileReader fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);
            String linea;
            while ((linea = br.readLine()) != null) {
                System.out.println(linea);
                for (int i = 0; i < linea.length(); i++) {
                    alumnos[i] = br.readLine().trim();
                    calificacion[i] = br.read();
                    promedios(linea);

                }
                FileWriter fw = new FileWriter("salidafinal.txt");
                fw.write(linea);

            }
            fr.close();
            br.close();
        } catch (IOException e) {
            System.out.println("Ha ocurrido un error: " + e.getMessage());
        }

    }

    public double promedios(String linea) {
        int suma = 0;
        int resultado;

        for (int i = 0; i < 2; i++) {
            linea.split("z");
            calificacion[i] = Integer.parseInt(linea);
            suma += calificacion[i];
        }
        return resultado = suma / (3);
    }

}

Seria de gran ayuda que me pudieran orientar estoy muy perdido.

El formato es este...

introducir la descripción de la imagen aquí

2 Answers2

0

El null que salta en la excepción se debe a que no inicializas la variable linea.Esta asi:

String linea;

Y deberia de estar así al inicializarse por primera vez:

String linea = "";
Marcos Pérez
  • 179
  • 10
0

Creo que el error te está dando aquí:

alumnos[i] = br.readLine().trim();

Esta línea la tienes dentro de un for cuya condición es la siguiente:

for (int i = 0; i < linea.length(); i++) {...}

Si te fijas, la longitud de la primera línea es 10 y estás haciendo 10 veces br.readLine().trim(), con lo cual, como el archivo tiene menos de 10 líneas te salta la excepción.

Revisa lo que estás haciendo porque no acaba de tener sentido.

Pablo Simon DiEstefano
  • 3,151
  • 1
  • 16
  • 40