使用CSVPrinter类,
apache CSVPrinter类官方API文档:官网API
样例:
1.引入POM依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.1</version>
</dependency>
2.代码编写
package com.test.server;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
public class CSVTest {
public static void main(String[] args) throws IOException, InterruptedException {
Map<String, String> bizMap = new HashMap<>();
//输出10条日期和随机字符串
for (int i = 0; i < 10; i++) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
int rows = i + 1;
bizMap.put(simpleDateFormat.format(new Date()), UUID.randomUUID().toString());
Thread.sleep(1000);
}
//文件路径名,用你自己的
String fileName = "/Users/XXXXXX/Downloads/file1.csv";
Writer out = null;
FileOutputStream fileOs = null;
fileOs = new FileOutputStream(fileName);
out = new OutputStreamWriter(fileOs, "GBK");
//字符数组是头行
CSVPrinter printer = new CSVPrinter(out, CSVFormat.DEFAULT.withHeader("时间", "名称").withQuote(null));
List<Object> objects = new ArrayList<>();
for (Map.Entry<String, String> entry : bizMap.entrySet()) {
objects.add(entry.getKey());
objects.add(entry.getValue());
//打印一行
printer.printRecord(objects);
//打印完后注意将数组clear掉
objects.clear();
}
out.flush();
}
}
3.效果演示: