这似乎是一个有点常见的问题,但我无法找到解决问题的方法。我试图从标题为"电影"的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时有没有办法做到这一点?我想,一旦我已经创建了数组,这样做会更容易。谢谢!