【问题标题】:Reading CSV file with different row length in java在java中读取具有不同行长的CSV文件
【发布时间】:2019-11-08 13:24:05
【问题描述】:

我尝试从 CSV 文件中读取所有行,但并非所有行的长度都相同。我使用了这段代码:

BufferedReader reader = new BufferedReader(new FileReader("C://Users/Balazs/Downloads/numbers.csv"));
String line = "";
while ((line = reader.readLine()) != null) {
    String[] szamok = line.split(";");

但如果某些行比之前的行长,它会给我错误。 任何想法如何在java中解决这个问题? 谢谢!

【问题讨论】:

  • 我认为这不是因为行的长度,而是因为它的内容。您能否添加一个 int 变量来告诉您程序在哪个通道抛出错误?另外能否请您澄清出现了什么错误?
  • 一个 csv 文件通常以逗号分隔,您确定要在 ; 而不是 , 上拆分吗?
  • 我尝试使用这个: if (szamok[19]!=null) { Integer hetedikSzam = Integer.parseInt(szamok[19]); hetedikSzam = Integer.parseInt(szamok[19]); } 但它给了我一个 ArrayIndexOutOfBoundsException 大多数行以 szamok[18] 结尾,但也有一些在 szamok[19]
  • 请不要将代码放入 cmets。 edit 改为您的问题
  • 你最好检查if(szamok.length >18)而不是if (szamok[19]!=null)

标签: java csv bufferedreader


【解决方案1】:

如果 (szamok.length > 19) { 整数 hetedikSzam = Integer.parseInt(szamok[19]);

            hetedikSzam = Integer.parseInt(szamok[19]);
             }

【讨论】:

    猜你喜欢
    • 2014-06-26
    • 1970-01-01
    • 2020-12-24
    • 2022-06-30
    • 2023-04-05
    • 2011-02-02
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    相关资源
    最近更新 更多