CSVPrinter 在行首和行尾添加双引号
CSVPrinter adds double quotes at beginning and end of line
我正在使用 CSVPrinter 创建 CSV。
@Data
public class ExportRecord {
String name;
String email;
String code;
@Override
public String toString() {
return String.join(";",
name,
email,
StringUtils.defaultString(code));
}
}
CSVFormat csvFormat = CSVFormat.EXCEL.builder()
.setDelimiter(';')
.setHeader(Arrays.stream(ExportHeader.values()).map(ExportHeader::getCsvHeader).toArray(String[]::new))
.build();
try (CSVPrinter csvPrinter = new CSVPrinter(new FileWriter(csvToExport), csvFormat)) {
for (ExportRecord exportRecord : exportRecords) {
csvPrinter.printRecord(exportRecord);
}
} catch (IOException e) {
...
}
这工作正常,但它在行首和行尾添加了双引号。例如
header1;header2;header3
"string1;string2;string3"
我怎样才能删除它们?
我尝试了一个使用 PrintWriter 的更简单的解决方案并解决了它。
try (PrintWriter printWriter = new PrintWriter(csvToExport)) {
String header = Arrays.stream(ExportHeader.values())
.map(ExportHeader::getCsvHeader)
.collect(joining(";"));
printWriter.println(header);
for (ExportRecord exportRecord : exportRecords) {
printWriter.println(exportRecord.toString());
}
} catch (IOException e) {
...
}
我正在使用 CSVPrinter 创建 CSV。
@Data
public class ExportRecord {
String name;
String email;
String code;
@Override
public String toString() {
return String.join(";",
name,
email,
StringUtils.defaultString(code));
}
}
CSVFormat csvFormat = CSVFormat.EXCEL.builder()
.setDelimiter(';')
.setHeader(Arrays.stream(ExportHeader.values()).map(ExportHeader::getCsvHeader).toArray(String[]::new))
.build();
try (CSVPrinter csvPrinter = new CSVPrinter(new FileWriter(csvToExport), csvFormat)) {
for (ExportRecord exportRecord : exportRecords) {
csvPrinter.printRecord(exportRecord);
}
} catch (IOException e) {
...
}
这工作正常,但它在行首和行尾添加了双引号。例如
header1;header2;header3
"string1;string2;string3"
我怎样才能删除它们?
我尝试了一个使用 PrintWriter 的更简单的解决方案并解决了它。
try (PrintWriter printWriter = new PrintWriter(csvToExport)) {
String header = Arrays.stream(ExportHeader.values())
.map(ExportHeader::getCsvHeader)
.collect(joining(";"));
printWriter.println(header);
for (ExportRecord exportRecord : exportRecords) {
printWriter.println(exportRecord.toString());
}
} catch (IOException e) {
...
}