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)
答案 0 :(得分:1)
首先:Java中的数组是零索引的,这意味着数组中的第一个元素不是由数组[1]选择,而是由数组[0]选择。由于OutOufBoundsException是在索引1处触发的,因此您的数组中最多只包含一个元素(您应该在访问之前检查数组的大小)。因为您试图访问下一行中的索引3(Java中的第四个元素),我怀疑您希望每行中至少有3个元素。由于最多只有一个元素,您似乎使用了错误的分裂字符,或者您的文件未按预期格式化。我希望这可以帮助你。亲切的问候