2014-02-18 5 views
0

Я создаю файл, который на самом деле не является файлом csv, но SuperCSV может помочь мне сделать создание этого файла более простым. Структура файла использует разные длины для каждой строки, следуя макету, который не разделяет разную информацию. Итак, чтобы узнать, какая информация имеет в одной строке, вам нужно посмотреть первые 2 символа (имя регистра), подсчитать символы и извлечь их по размеру.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' - правильный код для нулевого символа?

ответ

2

Возможно, это не то, что вы хотите услышать, но я бы не рекомендовал использовать Super CSV для этого (и я - коммиттер!). Его единственная цель - иметь дело с файлами с разделителями - и вы не используете разделители.

Вы можете неправильно использовать Super CSV, создав объект-оболочку (содержащий ваш список), метод toString() просто объединяет все значения вместе, а затем передает этот единственный объект в writer.write(), но это ужасный взломать.

Я бы рекомендовал либо найти другую библиотеку, более подходящую для вашей проблемы, либо написать собственное решение.

Смежные вопросы