Próbuję zaimportować plik CSV do tablicy, której mogę użyć w programie Java. Plik CSV został pomyślnie zaimportowany, a dane wyjściowe pojawiają się na terminalu, ale powoduje to błąd:Parsowanie danych z CSV do tablicy w Javie
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at CompareCSV.main(CompareCSV.java:19)
na końcu. Ponadto, gdy próbuję wywoływać elementy w tablicy, pokazuje również ten sam błąd. Moje kodu jest poniżej:
import java.io.*;
import java.util.*;
public class CompareCSV {
public static void main(String[] args) {
String fileName = "sampledata1.csv";
try {
BufferedReader br = new BufferedReader(new FileReader(fileName));
String strLine = null;
StringTokenizer st = null;
int lineNumber = 0, tokenNumber = 0;
while((fileName = br.readLine()) != null) {
lineNumber++;
String[] result = fileName.split(",");
for (int x=0; x<result.length; x++) {
System.out.println(result[x]);
}
}
}
catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Dlaczego używasz stałej kodowanej w pętli for, zamiast rozmiaru wyniku? – Perception
Możesz użyć istniejącego interfejsu API języka Java CSV do swoich potrzeb: na przykład http://sourceforge.net/projects/csv4j/ lub http://sourceforge.net/projects/javacsv/. –
@Perception ma rację, czy na pewno masz 3 wartości po przeczytaniu linii? – Marcelo