package com.testing;
import java.io.BufferedReader;
import java.io.FileReader;
public class CsvParser {
public static void main(String[] args) {
String csvFile = "D:/code-home/SentimentAnalysis/test_data/Sentiment Analysis Dataset.csv";
BufferedReader br = null;
String line = "";
String cvsSplitBy = "t"; // data is in format splitted by tab
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
// use comma as separator
String[] tweet = line.split(cvsSplitBy);
System.out.println(tweet[1]);
System.out.println(tweet[3]);
}
}
}
程序的目的是解析CSV格式。我使用了bufferRead方法。
当我去编译程序时,它工作得很好。当我运行程序时,输出被打印出来,但是有一个异常:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at com.testing.CsvParser.main(CsvParser.java:34)
首先:Java中的数组是零索引的,这意味着数组中的第一个元素不是由array[1]选择的,而是由array[0]选择的。由于OutOufBoundsException在索引1处被触发,因此数组中最多有一个元素(在访问数组之前应该检查数组的大小)。因为您试图在下一行访问索引3 (Java中的第四个元素),我怀疑您希望每行中至少有3个元素。由于最多有一个元素,您似乎要么使用了错误的分割字符,要么您的文件没有像您期望的那样格式化。我希望这对你有所帮助。亲切的问候