繁体   English   中英

CSV 打印机 java

[英]CSVPrinter java

我目前正在使用 org.apache.commons.csv.CSVPrinter 在我的项目中创建一个 CSV 文件。 当我开始一个新项目并打算重用这段代码时:

BufferedWriter successWriter = Files.newBufferedWriter(Paths.get(successFile + "_" + sDate + ".csv"));

csvPrinter = new CSVPrinter(successWriter, CSVFormat.DEFAULT.withDelimiter(delimiter.charAt(0))
                        .withRecordSeparator("\n").withEscape('\\').withQuoteMode(QuoteMode.NONE));

我收到所有“with*”方法都已弃用的警告。

Apache 声明改为使用“set*”。 但由于这些是 CSVBuilder 方法,我不确定如何正确使用它们。

您能否提供一个示例,说明如何在给定代码中最好地使用它们?

提前谢谢了!

根据 javadoc( https://commons.apache.org/proper/commons-csv/apidocs/index.html

DEFAULT 是一个 CSVFormat 实例,其中包含预定义的构建器。
您可以更新构建器或从头开始创建构建器。

这是一个简单的例子:

 BufferedWriter successWriter = Files.newBufferedWriter(Paths.get( "C:\\temp\\testingtest.csv"));
    char delimiter = ';';
    CSVPrinter csvPrinter = new CSVPrinter(successWriter, 
    // Creates a new default builder.
    CSVFormat.Builder.create()
    // use setters
    .setDelimiter(delimiter).setRecordSeparator("\n").setEscape('\\').setQuoteMode(QuoteMode.NONE).setHeader("h1","h2").build());
    csvPrinter.printRecord("1", "2");
    csvPrinter.flush();

注意:apache commons-csv 1.9 是最后一个版本,标记有来自依赖项的漏洞:

1.CVE-2022-23221
2.CVE-2021-42392
3.CVE-2021-23463

您可能不想在生产中使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM