其實(shí)csv文件格式和txt文件一樣,你用ue或者editplus打開它看看,就是一些字符串,中間用逗號隔開了。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、古藺網(wǎng)站維護(hù)、網(wǎng)站推廣。
所以你從java中導(dǎo)出數(shù)據(jù)到csv文件中是和導(dǎo)出到txt文件中一樣的,導(dǎo)出的文件后綴名改成csv就ok了。
使用poi包,csv其實(shí)就是用逗號隔開的文本文件,每條記錄占一行。
Java調(diào)用一下shell腳本,用shell腳本去執(zhí)行導(dǎo)出CSV到一個(gè)文件夾,然后再下載,完事,因?yàn)橛闷渌绞綄?dǎo)出會(huì)更加高效,內(nèi)存和速度都很快。
解釋:csv文件實(shí)際上就是字符串,之間用“,”進(jìn)行分割,之后進(jìn)行的存儲。
工具類如下:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.List;
/**
*
* CSV文件導(dǎo)出工具類
*/
public class CSVUtils {
/**
* CSV文件生成方法
* @param head
* @param dataList
* @param outPutPath
* @param filename
* @return
*/
public static File createCSVFile(List head, ListList dataList,
String outPutPath, String filename) {
File csvFile = null;
BufferedWriter csvWtriter = null;
try {
csvFile = new File(outPutPath + File.separator + filename + ".csv");
File parent = csvFile.getParentFile();
if (parent != null !parent.exists()) {
parent.mkdirs();
}
csvFile.createNewFile();
// GB2312使正確讀取分隔符","
csvWtriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(
csvFile), "GB2312"), 1024);
// 寫入文件頭部
writeRow(head, csvWtriter);
// 寫入文件內(nèi)容
for (List row : dataList) {
writeRow(row, csvWtriter);
}
csvWtriter.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
csvWtriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return csvFile;
}
/**
* 寫一行數(shù)據(jù)方法
* @param row
* @param csvWriter
* @throws IOException
*/
private static void writeRow(List row, BufferedWriter csvWriter) throws IOException {
// 寫入文件頭部
for (Object data : row) {
StringBuffer sb = new StringBuffer();
String rowStr = sb.append("\"").append(data).append("\",").toString();
csvWriter.write(rowStr);
}
csvWriter.newLine();
}
}
Object-Z