SuperCSV с нулевым разделителем

Я создаю файл, который на самом деле не является 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' - правильный код для нулевого символа?


person brevleq    schedule 18.02.2014    source источник


Ответы (1)


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

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

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

person James Bassett    schedule 18.02.2014