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

只写一行

郦楷
2023-03-14

好吧,opencsv有点工作,除了一次只写一行,删除以前的信息。如果我想要这样的csv:

汽车、年份、型号

马自达,1996年,模型a

法拉利,1998年,型号b

所以我每次得到的只是最后一行,无论我输入多少信息,代码都是这样的:

try {
             File traceFile = new File(((Context)this).getExternalFilesDir(null), FILE_NAME);
             CSVWriter writer = new CSVWriter(new FileWriter(traceFile));
              String[] entries = array_body.split("#");
              writer.writeNext(entries);
             writer.close();
        }
        catch (IOException e) {
            e.printStackTrace();
        } 

根据教程和例子,我看到这个代码应该工作,请帮助?

array_body是"part_a#part_b#part_c"

共有2个答案

范霄
2023-03-14

我假设这是一个循环?你创建一个新的writer,然后写一行。所以,是的,它只有一行。将< code>new CSVWriter移出循环。如果这不是问题所在,请展示其余的代码,因为你描述的问题似乎与你的循环结构有关。

周翰池
2023-03-14

它适用于我-你确定你不会意外地在读循环中使用新的FileWriter吗?

public void create(int numRecords, FileWriter fos) {
    CSVWriter writer = new CSVWriter(fos);
    writer.writeNext(SmallRecordGenerator.generateHeader());
    for (int i = 1; i <= numRecords; i++) {
        SmallRecord record = SmallRecordGenerator.createRecord(i);
        writer.writeNext(record.convert());
    }
}
 类似资料:
  • 我有一个fileWrite()方法,它接受两个字符串值作为参数(特定的数组值)。我将此方法包含在for循环中,这样它就可以循环遍历数组并获得要写入文件的字符串值 我在代码中包含的方法如下所示: 似乎只是将数组中的最后一个值写入文本文件。

  • 我在页面上有一个表,我需要从表中的特定单元格中读取值。我想把这些值写到excel文件中。问题是for loop只循环一次,并且只为Excel中的第一个单元格写入值。我试过很多不同的循环,在谷歌上搜索,但都找不到答案。请帮帮忙。下面是我要编写到Excel的代码: 这是我写入excel文件的地方 循环成功执行并从表中正确打印出值,但我需要将这些值写入Excel。似乎在excel中写入第一个值后,for

  • ===================trace================================

  • 我想知道使用和使用有什么区别

  • 问题内容: 在我的实体类中,我试图创建一个只写字段(在序列化期间会被忽略,但通常会反序列化)。 这 几乎 给了我想要的东西:JSON包含“ password”字段,但该值始终为null。如何完全删除该字段? 问题答案: 使用上只是 吸气 ,而不是使用。然后也用在 二传手 。 这应该允许反序列化,但是序列化的JSON输出将不包含它。 例如,将以其他方式表示要序列化的属性(例如“ getValue”以

  • 此字段必须在mongo数据库中,由等差日期表示。 我可以为整个Pojo编写一个转换器,但因为它只是25个字段中的一个,所以没有太大意义,而且当一个字段发生变化或添加更多字段时,它是错误的另一个位置。 是否有一种方法调用默认的转换器服务,并在默认的转换服务之后更改其他2个服务,这将对性能产生很大影响。还是有一个默认的转换器接口要覆盖? 是的,我也可以写一个LongToDate转换器,但这将影响所有的