У меня проблема при анализе файла 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 в поле значения, чтобы последующие процессы не подавились нулевым значением. Спасибо за вашу помощь, ребята!