弃用的 CSVWriter 构造函数

Deprecated CSVWriter constructor

我正在使用 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;
}

但我不太确定该放什么,因为我不希望我的文件以不同的方式结束。

这是具有默认值的同一个构造函数:

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

Default value for separator is ;. Default value for quotechar is ". Default value for escapechar is ". Default value for lineEnd is "\n".

class 已经有代表默认值的静态字段,所以你可以简单地做:

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
);