Einlesen der CSV-Datei in Java und das speichern der Werte in ein int array

Ich habe eine CSV-Datei von strings in diesem format:

14/10/2011  422     391.6592    394.52324   0.039215686
13/10/2011  408.43  391.7612    395.0686031 0.039215686
12/10/2011  402.19  391.834     395.3478736 0.039215686

Alles was ich will zu tun ist, Lesen Sie in der csv-Datei und speichern Sie dann die 3. und 4. Spalten Daten in integer-arrays.

Dies ist der code, den ich geschrieben habe:

    BufferedReader CSVFile = 
            new BufferedReader(new FileReader("appleData.csv"));

    String dataRow = CSVFile.readLine(); 
    int count = 0;

    while (dataRow != null){
        String[] dataArray = dataRow.split(",");

        EMA[count] = dataArray[2];
        SMA[count] = dataArray[3];

        dataRow = CSVFile.readLine(); //Read next line of data.
    }
    //Close the file once all data has been read.
    CSVFile.close();

Möchte ich am Ende mit zwei arrays, EMA, das enthält alle Werte, die aus der 3. Spalte und SMA, die die Werte enthält, die aus der 4. Spalte.

Ich bin immer ein null-Zeiger-Ausnahme. Kann mir bitte jemand sagen, was für Fehler ich mache?

  • Warum nicht, Sie zeigen nur den stacktrace? Wo kommt die NPE auftreten?
  • Die NPE tritt in der Zeile, EMA[count] = dataArray[2];
  • Und wo tun Sie initialisieren EMA?
  • EMA ist eine Globale variable initialisiert, so: int[] EMA;
  • Das ist yust eine Erklärung. Müssen Sie initialisieren Sie das array mit der richtigen Größe (obwohl diese erhöhen sollten und IndexOutOfBounds statt einer NPE). Bitte zeigen Sie den code.
  • Nein, es wirft eine NPE, da das array null ist. Es wirft eine IndexOutOfBoundsException, wenn das array initialisiert wurde, als new int[0] zum Beispiel.
  • Warum nicht OpenCSV?
  • Warum sind Sie beim aufteilen einer tab-getrennten string mit einem Komma? Auch, wissen Sie, Sie könnten einfach anrufen CSVReader.ready() für Verfügbarkeit überprüfen, anstatt erstellen Sie die variable, die Sie nie Aufräumen? Du bist auch nicht Inkrementieren count.
  • Nizet: Ups, das ist, was ich meinte... ich habe irgendwie geschafft den falschen Erklärung.

InformationsquelleAutor James | 2013-01-01
Schreibe einen Kommentar