弃用的CSVWriter构造函数

时间:2018-08-27 09:19:19

标签: java opencsv

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

但是我不确定在其中放置什么,因为我不希望文件以不同的结尾。

2 个答案:

答案 0 :(得分: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
);

答案 1 :(得分:1)

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

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

separator的默认值为;quotechar的默认值为   "escapechar的默认值为"。的默认值   lineEnd"\n"