在Java中读取CSV文件时出现空行

时间:2015-03-21 22:24:04

标签: java android csv indexoutofboundsexception

我已经在Android上使用这个应用程序一段时间了,突然遇到了以下问题,即使它之前没有多次出现问题。

我正在使用Java读取CSV文件,但是当我打印该CSV文件的每一行的日志时,即使实际的CSV文件中没有一行,也会出现空行。

这就是我正在阅读文件的方式:

InputStreamReader inputStreamReader;
try {
    inputStreamReader = new InputStreamReader(getActivity().getAssets().open("My_file.csv"));
    Scanner inputStream = new Scanner(inputStreamReader);
    inputStream.nextLine(); // Ignores the first line
    while (inputStream.hasNext()) {
        String data = inputStream.nextLine(); // Gets a whole line
        String[] line = data.split(","); // Splits the line up into a string array

        array.add(line[1]);
    }
    inputStream.close();
} catch (IOException e) {
    e.printStackTrace();
}

当我运行它时,我得到一个ArrayIndexOutOfBoundsException,在打印出该行的array.add(line[1])之前输入一条日志消息后,我发现我的CSV文件中有一个空白行(并且没有我检查的时候。)

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

首先:

每次你有一条没有array.add(line[1])的行时,

ArrayIndexOutOfBoundsException会抛出, ......在尝试阅读之前,最好先检查一下。即if(line.length > 1) { array.add(line[1]);}

这样做会为您解决多个错误。