У меня возникла проблема при разборе файла CSV.Это только 2 строки данных с запятой, разделяющей их.Первая строка - это дата, а вторая - значение.Поле даты всегда будет содержать даты, но иногда значение является пустым (или пустым?).Когда он достигает нулевого значения, я получаю StringIndexOutOfBoundsException, и приложение вылетает.Я регистрирую каждый цикл и вижу данные, но как только я получаю нулевое значение, он прекращает цикл и выдает ошибку.Если нет нулевых значений, то это работает отлично.Вот мой код:
BufferedReader buf = new BufferedReader(new StringReader(file));
String line = null;
while ((line = buf.readLine()) != null) {
try {
String date = null, value = null;
String[] RowData = line.split(",");
date = RowData[0];
value = RowData[1]; (this is the row it crashes on)
Вот как выглядит CSV:
2011-08-28 09: 16,8.23
2011-08-28 09: 15,8.24
2011-08-28 09: 14,8.26
2011-08-28 09: 13,8.34
2011-08-28 09:12,
2011-08-28 09: 11,10,72
2011-08-28 09: 10,
2011-08-28 09: 09,
значение в 09:13 является последним в logcat до того, как я получу ошибку.
Это исправило это:
if(RowData.length == 2) {
date = RowData[0];
value = RowData[1];
} else {
date = RowData[0];
value = "0";
}
Я написал 0 в поле значения, поэтому позжепроцессы не будут подавлены нулевым значением.Спасибо за вашу помощь, ребята!