国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

java生成csv文件

2019-11-14 15:39:44
字體:
供稿:網(wǎng)友

 一、csv文件

  逗號(hào)分隔值(Comma-Separated Values,CSV,有時(shí)也稱為字符分隔值,因?yàn)榉指糇址部梢圆皇嵌禾?hào)),其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本)。純文本意味著該文件是一個(gè)字符序列,不含必須像二進(jìn)制數(shù)字那樣被解讀的數(shù)據(jù)。CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見的是逗號(hào)或制表符。通常,所有記錄都有完全相同的字段序列。
CSV是一種通用的、相對(duì)簡(jiǎn)單的文件格式,被用戶、商業(yè)和科學(xué)廣泛應(yīng)用。最廣泛的應(yīng)用是在程序之間轉(zhuǎn)移表格數(shù)據(jù),而這些程序本身是在不兼容的格式上進(jìn)行操作的(往往是私有的和/或無規(guī)范的格式)。因?yàn)榇罅砍绦蚨贾С帜撤NCSV變體,至少是作為一種可選擇的輸入/輸出格式。

“CSV”泛指具有以下特征的任何文件:

  • 純文本,使用某個(gè)字符集,比如ASCII、Unicode、EBCDIC或GB2312;
  • 由記錄組成(典型的是每行一條記錄);
  • 每條記錄被分隔符分隔為字段(典型分隔符有逗號(hào)、分號(hào)或制表符;有時(shí)分隔符可以包括可選的空格);
  • 每條記錄都有同樣的字段序列。

二、示例

  相關(guān)代碼如下:

  1 package com.test.Excel;  2   3 import java.io.BufferedWriter;  4 import java.io.File;  5 import java.io.FileOutputStream;  6 import java.io.IOException;  7 import java.io.OutputStreamWriter;  8 import java.net.URLEncoder;  9 import java.util.ArrayList; 10 import java.util.Arrays; 11 import java.util.Date; 12 import java.util.List; 13  14 import org.junit.Test; 15  16 /** 17  * 創(chuàng)建CSV文件 18  */ 19 public class CSVCrate { 20  21     /** 22      * 創(chuàng)建CSV文件 23      */ 24     @Test 25     public void createCSV() { 26          27         // 表格頭 28         Object[] head = { "客戶姓名", "證件類型", "日期", }; 29         List<Object> headList = Arrays.asList(head); 30  31         //數(shù)據(jù) 32         List<List<Object>> dataList = new ArrayList<List<Object>>(); 33         List<Object> rowList = null; 34         for (int i = 0; i < 100; i++) { 35             rowList = new ArrayList<Object>(); 36             rowList.add("張三" + i); 37             rowList.add("263834194" + i); 38             rowList.add(new Date()); 39             dataList.add(rowList); 40         } 41          42         String fileName = "testCSV.csv";//文件名稱 43         String filePath = "c:/test/"; //文件路徑 44          45         File csvFile = null; 46         BufferedWriter csvWtriter = null; 47         try { 48             csvFile = new File(filePath + fileName); 49             File parent = csvFile.getParentFile(); 50             if (parent != null && !parent.exists()) { 51                 parent.mkdirs(); 52             } 53             csvFile.createNewFile(); 54  55             // GB2312使正確讀取分隔符"," 56             csvWtriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(csvFile), "GB2312"), 1024); 57              58             //文件下載,使用如下代碼 59 //            response.setContentType("application/csv;charset=gb18030"); 60 //            response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8")); 61 //            ServletOutputStream out = response.getOutputStream(); 62 //            csvWtriter = new BufferedWriter(new OutputStreamWriter(out, "GB2312"), 1024); 63              64             int num = headList.size() / 2; 65             StringBuffer buffer = new StringBuffer(); 66             for (int i = 0; i < num; i++) { 67                 buffer.append(" ,"); 68             } 69             csvWtriter.write(buffer.toString() + fileName + buffer.toString()); 70             csvWtriter.newLine(); 71  72             // 寫入文件頭部 73             writeRow(headList, csvWtriter); 74  75             // 寫入文件內(nèi)容 76             for (List<Object> row : dataList) { 77                 writeRow(row, csvWtriter); 78             } 79             csvWtriter.flush(); 80         } catch (Exception e) { 81             e.PRintStackTrace(); 82         } finally { 83             try { 84                 csvWtriter.close(); 85             } catch (IOException e) { 86                 e.printStackTrace(); 87             } 88         } 89     } 90      91     /** 92      * 寫一行數(shù)據(jù) 93      * @param row 數(shù)據(jù)列表 94      * @param csvWriter 95      * @throws IOException 96      */ 97     private static void writeRow(List<Object> row, BufferedWriter csvWriter) throws IOException { 98         for (Object data : row) { 99             StringBuffer sb = new StringBuffer();100             String rowStr = sb.append("/"").append(data).append("/",").toString();101             csvWriter.write(rowStr);102         }103         csvWriter.newLine();104     }105 }

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 徐闻县| 娄烦县| 屯昌县| 常熟市| 车致| 郴州市| 辉南县| 凯里市| 平乡县| 肥西县| 乐平市| 汉源县| 油尖旺区| 大连市| 崇义县| 浠水县| 射阳县| 兴和县| 林口县| 综艺| 炎陵县| 昌图县| 潜江市| 襄垣县| 孟津县| 鄂温| 安阳市| 方正县| 大渡口区| 梅河口市| 晴隆县| 满洲里市| 巢湖市| 卢湾区| 大安市| 陆良县| 宁武县| 德保县| 平安县| 富裕县| 大邑县|