具有空分隔符的SuperCSV

时间:2014-02-18 00:54:54

标签: supercsv

我正在创建一个不是csv文件的文件,但SuperCSV可以帮助我更轻松地创建这个文件。文件的结构对于每一行使用不同的长度,遵循不分隔不同信息的布局。因此,要知道哪一行信息在一行中,您需要查看前两个字符(寄存器的名称),计算字符数并按大小提取。

我已将SuperCSV配置为使用空分隔符,但是,创建的文件使用的空间应该没有任何内容。

public class TarefaGerarArquivoRegistrosFiscais implements ITarefa {

    private static final CsvPreference FORMATO_ANEXO_IV = new CsvPreference.Builder('"', '\0' , "\r\n").build();

    public void processar() {
        try {
            writer = new CsvListWriter(getFileWriter(), FORMATO_ANEXO_IV);
            writer.write(geradorRegistroU1.gerar());
        } finally {
            if (writer != null)
                writer.close();
        }
    }
}

我做错了什么? '\ 0'是空字符的正确代码吗?

1 个答案:

答案 0 :(得分:2)

这可能不是你想听到的,但我不建议使用Super CSV(我是一个提交者!)。它的唯一目的是处理分隔文件 - 而且你没有使用分隔符。

您可以通过创建一个包装器对象(包含您的List)来滥用超级CSV,其toString()方法只是将所有值连接在一起,然后将该单个对象传递给writer.write(),但这是一个糟糕的黑客攻击

我建议找另一个更适合您问题的库,或者编写自己的解决方案。