in backup-core/src/main/java/org/apache/iotdb/backup/core/pipeline/out/source/OutStructureSource.java [101:138]
public Flux<String> generateCsvPrinter(String structureFileName) {
return Flux.deferContextual(
contextView -> {
PipelineContext<ExportModel> pcontext = contextView.get("pipelineContext");
ExportModel exportModel = pcontext.getModel();
try {
File file = new File(exportModel.getFileFolder());
if (!file.exists()) {
file.mkdirs();
}
FileOutputStream outputStream =
new FileOutputStream(exportModel.getFileFolder() + TIMESERIES_STRUCTURE);
CSVPrinter printer =
CSVFormat.Builder.create(CSVFormat.DEFAULT)
.setHeader()
.setSkipHeaderRecord(true)
.setEscape('\\')
.setQuoteMode(QuoteMode.NONE)
.build()
.print(new OutputStreamWriter(outputStream, exportModel.getCharSet()));
List<String> headerList = new ArrayList<>();
headerList.add("timeseries");
headerList.add("alias");
headerList.add("storage group");
headerList.add("dataType");
headerList.add("encoding");
headerList.add("compression");
headerList.add("tags");
headerList.add("attributes");
headerList.add("aligned");
exportPipelineService.syncPrint(printer, headerList);
csvPrinters[0] = printer;
} catch (IOException e) {
log.error("异常信息:", e);
}
return Flux.just(structureFileName);
});
}