当前位置: 首页 > 知识库问答 >
问题:

写入csv文件获取数组越界错误

印宏阔
2023-03-14

我想以这种方式在csv中写入arraylist中的任何内容,无论其大小如何,但一个数组的值较少,这会导致数组越界错误,有没有办法解决这个问题?

在这个A到H中,它有自己的arraylist,有时其他数组中的元素少于A的大小,这会导致数组超出范围。

try{
        File file = new File("aaaa.csv");
        FileWriter fw = new FileWriter(file);
        BufferedWriter bw = new BufferedWriter(fw);
    
        for(int j=0;j<A.size();j++) {
            bw.write(A.get(j));
            bw.write(","+B.get(j));
            bw.write(","+C.get(j));
            bw.write(","+D.get(j));
            bw.write(","+E.get(j));
            bw.write(","+F.get(j));
            bw.write(","+G.get(j));
            bw.write(","+H.get(j));
            bw.newLine();
        }
        bw.close();
        fw.close();
         
    }
    catch(IOException e) {
        e.printStackTrace();
    }

共有1个答案

郑桐
2023-03-14

您应该将列表大小与索引j的当前值进行比较

for (int j = 0; j < A.size(); j++) {  
  bw.write(A.get(j));  
  bw.write("," + (B.size() > j ? B.get(j) : ""));  
  bw.write("," + (C.size() > j ? C.get(j) : ""));  
  bw.write("," + (D.size() > j ? D.get(j) : ""));  
  bw.write("," + (E.size() > j ? E.get(j) : ""));  
  bw.write("," + (F.size() > j ? F.get(j) : ""));  
  bw.write("," + (G.size() > j ? G.get(j) : ""));  
  bw.write("," + (H.size() > j ? H.get(j) : ""));  
  bw.newLine();  
}
 类似资料:
  • 问题内容: 我想打开一个新的文本文件,然后将numpy数组保存到该文件。我写了这段代码: 我收到此错误: 有人知道怎么了吗? 另外,我在终端中找到了一个名为file_2的空文件,但是里面没有任何内容。 编辑:我正在使用Python3.4 问题答案: 看来您正在使用Python3。因此,请以二进制模式()而非文本模式()打开文件: 另外,关闭文件句柄,以确保将所有内容都写入磁盘。您可以使用-stat

  • 问题内容: 在我的游戏代码中,我尝试添加一张手牌。一旦我做完了,我的数组就超出了范围。一切看起来都不错,但也许我缺少了一些东西。 仅供参考,一个和两个是Player实例。来自Main类的相关代码(对格式感到抱歉。我很想将其传输到Stack Overflow): 卡类: 玩家等级: 问题答案: 问题出在你的循环上 没有其他任何值可设置,因此此循环不断循环,直到所有玩家拥有超过52张牌为止。一旦某人拥

  • 我使用String[3]数组来存储来自4个JTextFields的用户输入,然后将该数组输出到一个txt文件: 有人能告诉我为什么我会得到异常“数组索引越界”吗?谢谢。

  • 我正在使用pyspark,在向S3写入数据时遇到了问题,但从S3读取数据并不是问题。 这是我的代码: 这是错误: 有什么问题?

  • 我犯的错误 我的密码 我试图将数组的最后5个元素存储在temp 2中。那我就换了。有更简单的方法吗?将数组的前五个元素与后五个元素切换?你会如何用for循环切换它们?

  • 问题内容: 我正在尝试将csv文件“ read_ex.csv”读入数组。我在web / stackoverflow上进行了无休止的搜索,以找到一种将文件读入数组的方法。我能做的最好的事情是以流方式读取它,但是由于文件大小可变,我无法将其存储在数组中。我相信ArrayList是处理可变大小数组的方法,但是我不知道如何使用它。本质上,我希望能够在while循环结束后访问String数组“ values