我正在尝试使用openCSV库在android中解析一个简单的csv文件。我遇到的问题是它只读取第一列而没有其他内容。有人可以查看代码并提出可能出错的建议吗?
public final List<List<String>> readCsv(Context context) {
List<String> exerciseList = new ArrayList<String>();
List<String> setsList = new ArrayList<String>();
List<String> repsList = new ArrayList<String>();
List<List<String>> combinedList = new ArrayList<List<String>>();
AssetManager assetManager = context.getAssets();
try {
InputStream csvStream = assetManager.open("dummyexerciseplan.csv");
InputStreamReader csvStreamReader = new InputStreamReader(csvStream);
CSVReader csvReader = new CSVReader(new InputStreamReader(getAssets().open("dummyexerciseplan.csv")),',');
String[] line;
// throw away the header
csvReader.readNext();
while ((line = csvReader.readNext()) != null) {
System.out.println(line.toString());
exerciseList.add(line[0]);
setsList.add(line[1]);
repsList.add(line[2]);
}
} catch (IOException e) {
e.printStackTrace();
}
combinedList.add(exerciseList);
combinedList.add(setsList);
combinedList.add(repsList);
return combinedList;
}
这给出了一个数组超出范围的异常,因为数组的长度只有1而且我也在索引第二个和第三个元素。
这就是csv文件的样子:
Exercise Name,Sets,Repetitions,Day Of Week
Bent over two-dumbell row,2,12,1
Pull-Ups,2,12,1
答案 0 :(得分:0)
问题在于我正在使用的csv文件。它在最后一行有一个尾随空格。这是导致越界异常的单个成员数组。