超级CSV Java所有未写入CSV的数据

超级CSV Java所有未写入CSV的数据,java,supercsv,Java,Supercsv,我有一个944大小的列表,当数据写入CSV文件时,一切正常,但我只看到940条记录。我不知道是什么问题。谁能帮帮我吗 static void writeCSVFile(String fileName, List<GPR> listGPR) { ICsvBeanWriter beanWriter = null; CellProcessor[] processors = new CellProcessor[] { new NotNull(),

我有一个944大小的列表
,当数据写入CSV文件时,一切正常,但我只看到940条记录。我不知道是什么问题。谁能帮帮我吗

static void writeCSVFile(String fileName, List<GPR> listGPR) {
    ICsvBeanWriter beanWriter = null;
    CellProcessor[] processors = new CellProcessor[] {
        new NotNull(), 
        new Optional(),
        new Optional(),
        new Optional(), 
        new Optional(), 
        new Optional(),
        new Optional(),
    };

    try {
        beanWriter = new CsvBeanWriter(new FileWriter(fileName),
            CsvPreference.STANDARD_PREFERENCE);

        final String[] header = {"Number","Project Type","Actual Start Date","Actual End Date","Owner","Name","Description"};

        final String[] dataMapping = new String[] { "number", "projectType", "actualStrtDate", "actualEndDate", "owner", "name","description"};

        beanWriter.writeHeader(header);
        for (GPR gpr : listGPR) {
            beanWriter.write(gpr, dataMapping, processors);
        }
    } catch (IOException ex) {
        System.out.println("Error writing the CSV file: " + ex);
    } finally {
        if (beanWriter != null) {
            try {
                beanWriter.close();
            } catch (IOException ex) {
                System.out.println("Error closing the writer: " + ex);
            }
        }
    }
}
static void writeCSVFile(字符串文件名,列表列表GPR){
ICsvBeanWriter beanWriter=null;
CellProcessor[]处理器=新的CellProcessor[]{
新的NotNull(),
新建可选(),
新建可选(),
新建可选(),
新建可选(),
新建可选(),
新建可选(),
};
试一试{
beanWriter=新CsvBeanWriter(新文件编写器(文件名),
CSVP(参考。标准优先);
最终字符串[]头={“编号”、“项目类型”、“实际开始日期”、“实际结束日期”、“所有者”、“名称”、“说明”};
最终字符串[]dataMapping=新字符串[]{“编号”、“项目类型”、“实际开始日期”、“实际开始日期”、“所有者”、“名称”、“说明”};
beanWriter.writeHeader(标题);
用于(GPR GPR:listGPR){
编写(gpr、数据映射、处理器);
}
}捕获(IOEX异常){
System.out.println(“写入CSV文件时出错:“+ex”);
}最后{
如果(beanWriter!=null){
试一试{
beanWriter.close();
}捕获(IOEX异常){
System.out.println(“关闭写入程序时出错:+ex”);
}
}
}
}

我也遇到了同样的问题,将代码放入try-catch块并主要关闭writeToCSV(writeToCSV.close())对象引用有助于我获取所有记录

你可能忘了关上书写器。使用try with resources语句。张贴一个完整的例子。并缩进你的代码。布赖恩,我已经关闭了writerMost当然不是。你能提供完整的相关代码吗?我已经更新了我的代码,请检查并让我知道我哪里出错了。原则上你做得不错。要简化代码,请在参考资料中使用
try
。异常处理也很弱,通常在控制台中输出消息并没有真正的帮助。至少打印stacktrace,以便在发生这种情况时进行调试