Java将CSV解析为数组OutofBoundsException

时间:2017-05-18 15:02:31

标签: java arrays csv parsing

这似乎是一个有点常见的问题,但我无法找到解决问题的方法。我试图从标题为"电影"的CSV文件中提取数据。列出数据如下:

1::Toy Story (1995)::Animation|Children's|Comedy
2::Jumanji (1995)::Adventure|Children's|Fantasy
3::Grumpier Old Men (1995)::Comedy|Romance
4::Waiting to Exhale (1995)::Comedy|Drama 

最多3952部电影。我编写了以下代码来将数据解析为数组,如下所示:

        try(BufferedReader br = new BufferedReader(new FileReader(moviesCSV))){
        while((line = br.readLine()) != null) {
            movies = line.split("::");  
        }        
    }
    catch (IOException e) {
        e.printStackTrace();
    }

然后抛出以下异常:

3952Contender, The (2000)Drama|ThrillerException in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at Assignment7.main(Assignment7.java:39)

现在很明显,当我的循环命中我的最后一个空行时,这是一个问题,但我似乎无法让它工作。我已经尝试过投入if语句来抓住它在3952上并在此之后退出,但似乎没有任何效果。非常感谢任何帮助!

另外一个问题,因为我觉得这是我稍后会遇到的问题。一旦我拥有这些数据(以及来自其他两个CSV文件的数据),我尝试做的就是将这些数组加载到SQL数据库中。我需要将电影与年份分开并创建一个单独的年份列。我在解析我的CSV时有没有办法做到这一点?我想,一旦我已经创建了数组,这样做会更容易。谢谢!

0 个答案:

没有答案