啥也不说了,直接上代码。代码上又解释:
package hhit.HIVECount.hive;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.List;
import com.csvreader.CsvWriter;
import hhit.HIVECount.hive.bean.IpPortCount;
import hhit.HIVECount.hive.bean.PortCount;
public class ExportCsv {
/**
* 每个端口总数量写入csv文件
*
* @param list 数据集合(通过数据库查询获得的list集合,存储的是对象)
* @param csvHeaders 标头信息
*/
public static void writePortToCSV(List<PortCount> list,String[] csvHeaders,String time) {
// 定义一个CSV路径,也可以写到"D:/" D盘中,本文写到了项目的 (D:\work\HIVECount\target\classes)
String csvFilePath = Thread.currentThread().getContextClassLoader().
getResource(".").getPath()+"PortCount-"+time+".csv";
try {
// 创建CSV写对象 例如:CsvWriter(文件路径,分隔符,编码格式);
CsvWriter csvWriter = new CsvWriter(csvFilePath, ',', Charset.forName("UTF-8"));
// 写表头
csvWriter.writeRecord(csvHeaders);
// 写内容
for (PortCount ipport:list) {
String[] csvContent = { ipport.getCountryName(), ipport.getProvince(),ipport.getCity(),
String.valueOf(ipport.getPort()),String.valueOf(ipport.getPortCount())};
csvWriter.writeRecord(csvContent);
}
csvWriter.close();
System.out.println("--------writePortToCSV文件已经写入--------");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* Ip和端口数量写入csv
* @param list
* @param csvHeaders
*/
public static void WriteIpPortToCSV(List<IpPortCount> list,String[] csvHeaders,String time) {
// 定义一个CSV路径
String csvFilePath = Thread.currentThread().getContextClassLoader().
getResource(".").getPath()+"IpPortCount-"+time+".csv";
try {
// 创建CSV写对象 例如:CsvWriter(文件路径,分隔符,编码格式);
CsvWriter csvWriter = new CsvWriter(csvFilePath, ',', Charset.forName("UTF-8"));
// 写表头
csvWriter.writeRecord(csvHeaders);
// 写内容
for (IpPortCount ipc:list) {
String[] csvContent = { ipc.getCountryName(), ipc.getProvince(),ipc.getCity(),
String.valueOf(ipc.getTargetCount()),String.valueOf(ipc.getPortCount())};
csvWriter.writeRecord(csvContent);
}
csvWriter.close();
System.out.println("--------WriteIpPortToCSV文件已经写入--------");
} catch (IOException e) {
e.printStackTrace();
}
}
}