Устаревший конструктор CSVWriter

Я использую OpenCSV для создания файлов CSV, заполненных записями из базы данных. Я использую это:

        CSVWriter writer = new CSVWriter(
            new OutputStreamWriter(new FileOutputStream("example.csv"),
                    StandardCharsets.UTF_8), ';');

Проблема в том, что этот конструктор @Deprecated.

В библиотеке есть несколько конструкторов, но только один не является устаревшим. Я использую этот конструктор:

/** @deprecated */
@Deprecated
public CSVWriter(Writer writer, char separator) {
    this(writer, separator, '"');
}

в то время как я должен использовать это:

public CSVWriter(Writer writer, char separator, char quotechar, char escapechar, String lineEnd) {
    super(writer, lineEnd);
    this.escapechar = escapechar;
    this.quotechar = quotechar;
    this.separator = separator;
}

Но я не совсем уверен, что туда вставить, так как не хочу, чтобы мои файлы оказались другими.


person anon    schedule 27.08.2018    source источник
comment
пройтись по документации. без сомнения, устаревший комментарий объясняет, какую альтернативу использовать и как   -  person Stultuske    schedule 27.08.2018
comment
поэтому посмотрите, каковы значения по умолчанию для других значений, и передайте их. Но почему бы не воспользоваться дополнительными возможностями?   -  person Stultuske    schedule 27.08.2018


Ответы (2)


В классе уже есть статические поля, которые представляют значения по умолчанию, поэтому вы можете просто сделать:

CSVWriter writer = new CSVWriter(
    new OutputStreamWriter(new FileOutputStream("example.csv"), StandardCharsets.UTF_8),
    ';',
    CSVWriter.DEFAULT_QUOTE_CHARACTER,
    CSVWriter.DEFAULT_ESCAPE_CHARACTER,
    CSVWriter.DEFAULT_LINE_END
);
person Michael    schedule 28.08.2018

Это тот же конструктор со значениями по умолчанию:

CSVWriter writer = new CSVWriter(
            new OutputStreamWriter(new FileOutputStream(SAZKOVA_UDALOST),
                    StandardCharsets.UTF_8), ';', '"', '"', "\n");

Значение по умолчанию для separator;. Значение по умолчанию для quotechar". Значение по умолчанию для escapechar". Значение по умолчанию для lineEnd"\n".

person anon    schedule 28.08.2018