使用 Apache Commons CSV 库生成 CSV 数据文件。
package ru.nikita;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
public class CSVWriter {
private final String filePath;
private final char delimiter;
public CSVWriter(String filePath) {
this.filePath = filePath;
this.delimiter = ';';
}
public void writeCSV(ArrayList<String> data){
try (FileWriter writer = new FileWriter(filePath, true);
CSVPrinter csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT.withDelimiter(this.delimiter))
) {
csvPrinter.printRecord(data);
csvPrinter.flush();
csvPrinter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我明白我需要使用utf-8编码,但我不知道如何为当前代码传递这个参数。
FileWriter 使用默认字符编码。
指定字符编码为UTF-8。