【问题标题】:SuperCSV with null delimiter带空分隔符的 SuperCSV
【发布时间】:2014-02-18 00:54:53
【问题描述】:

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

我已将 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' 是空字符的正确代码吗?

【问题讨论】:

    标签: supercsv


    【解决方案1】:

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

    您可以通过创建一个包装对象(包含您的列表)来滥用 Super CSV,该对象的 toString() 方法只是将所有值连接在一起,然后将该单个对象传递给 writer.write(),但这是一个糟糕的 hack。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 2013-10-21
      相关资源
      最近更新 更多