【发布时间】:2011-08-29 17:25:16
【问题描述】:
我在解析 CSV 文件时遇到问题。它只有 2 行数据,用逗号分隔。第一行是日期,第二行是值。日期字段将始终包含日期,但有时该值为空白(或 null?)。当它达到空值时,我得到一个 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";
}
我在 value 字段中写了一个 0,这样以后的进程就不会被 null 值阻塞。感谢大家的帮助!
【问题讨论】:
标签: android parsing csv text-parsing