我正在创建一个不是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'是空字符的正确代码吗?
答案 0 :(得分:2)
这可能不是你想听到的,但我不建议使用Super CSV(我是一个提交者!)。它的唯一目的是处理分隔文件 - 而且你没有使用分隔符。
您可以通过创建一个包装器对象(包含您的List)来滥用超级CSV,其toString()
方法只是将所有值连接在一起,然后将该单个对象传递给writer.write()
,但这是一个糟糕的黑客攻击
我建议找另一个更适合您问题的库,或者编写自己的解决方案。