导出为CSV错误,最后一行丢失单元格

时间:2014-03-06 20:51:53

标签: java database postgresql csv

大家好,这是我得到的错误

线程“main”中的异常java.io.IOException:值的数量错误。读3,预期4,读令牌[EOF],第28208行

行1-28207是正确的,所有4列都显示正确的数据,但是最后一行在单元格D中缺少值(不应该在哪里)

这是我的疑问。

   PreparedStatement statement = con 
                .prepareStatement("SELECT b.id_history ,position ,id_winner, "
                        + "amt_won "
                        + "FROM first_game_results a, first_game_results_statistics b "
                        + "WHERE a.id_history = b.id_history "
                        + "AND amt_won <> 0.00 " + "AND id_winning <>  0 "
                        + "AND id_player = 1");

然后将其打印到CSV文件中我正在使用

for (int i = 1; i < columnCount + 1; i++) {
            String name = rsmd.getColumnName(i);

            out.print(name);

            if (i != columnCount + 1) {
                out.print(",");
                //System.out.print(i);

相对来说,我对java很陌生。

任何帮助将不胜感激

错误

1 个答案:

答案 0 :(得分:0)

写文件时提交初学者错误是在写完文件时忘记刷新并关闭它们。这可能导致丢失文件的末尾或整个文件。

确保您已在作者,文件等上调用flush()close(),或者调用与您正在使用的工具等效的任何调用。根据您的实现,在您致电close()之前,该文件甚至可能会被其他打开的程序锁定。

Flush告诉它在其缓冲区中写入任何内容。关闭告诉你已完成文件。