一、csv文件

  逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。
CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。最广泛的应用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的(往往是私有的和/或无规范的格式)。因为大量程序都支持某种CSV变体,至少是作为一种可选择的输入/输出格式。

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

  • 纯文本,使用某个字符集,比如ASCII、Unicode、EBCDIC或GB2312;
  • 由记录组成(典型的是每行一条记录);
  • 每条记录被分隔符分隔为字段(典型分隔符有逗号、分号或制表符;有时分隔符可以包括可选的空格);
  • 每条记录都有同样的字段序列。

二、示例

  相关代码如下:

  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. * 创建CSV文件
  18. */
  19. public class CSVCrate {
  20.  
  21. /**
  22. * 创建CSV文件
  23. */
  24. @Test
  25. public void createCSV() {
  26.  
  27. // 表格头
  28. Object[] head = { "客户姓名", "证件类型", "日期", };
  29. List<Object> headList = Arrays.asList(head);
  30.  
  31. //数据
  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. // 写入文件内容
  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. * 写一行数据
  93. * @param row 数据列表
  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. }

java 生成 csv文件的更多相关文章

  1. Java生成CSV文件实例详解

    本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils ...

  2. POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解

    http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280. ...

  3. Java生成CSV文件

    1.新CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils; import java.io.BufferedWriter; im ...

  4. java导出生成csv文件

    首先我们需要对csv文件有基础的认识,csv文件类似excel,可以使用excel打开,但是csv文件的本质是逗号分隔的,对比如下图: txt中显示: 修改文件后缀为csv后显示如下: 在java中我 ...

  5. java 对CSV 文件的读取与生成

    CSV文件是以逗号分隔值的文件格式,一般用WORDPAD或记事本(NOTE),EXCEL打开.CSV(逗号分隔值)是一种用来存储数据的纯文本文件,通常都是用于存放电子表格或数据的一种文件格式,对于CS ...

  6. java将数据生成csv文件

    1,httpRequest接口触发进程[或者可以换成其他方式触发] /** * 出入库生成CSV文件 * @param req * @param params * @return */@Request ...

  7. java 操作 csv文件

    CSV是逗号分隔文件(Comma Separated Values)的首字母英文缩写,是一种用来存储数据的纯文本格式,通常用于电子表格或数据库软件.在 CSV文件中,数据“栏”以逗号分隔,可允许程序通 ...

  8. java读取CSV文件添加到sqlserver数据库

    在直接将CSV文件导入sqlserver数据库时出现了错误,原因还未找到,初步怀疑是数据中含有特殊字符.于是只能用代码导数据了. java读取CSV文件的代码如下: package experimen ...

  9. 图像处理项目——生成csv文件提高读取效率

    利用pyhton脚本生成csv文件 *开发环境为windows PyCharm*使用的是pyhton脚本*生成人脸和人脸对应的标签的csv文件 一:主要步骤 1.载入对应路径2.提取每一张图片对应的位 ...

随机推荐

  1. 改变 TMemo 的背景颜色 (Firemonkey)

    说明:展示使用程序码改变 Firemonkey TMemo 的背景颜色. 适用:XE6 源码下载:[原創]Memo改背景色_XE6.zip //---------------------------- ...

  2. Scalaz(33)- Free :算式-Monadic Programming

    在任何模式的编程过程中都无法避免副作用的产生.我们可以用F[A]这种类型模拟FP的运算指令:A是可能产生副作用的运算,F[_]是个代数数据类型ADT(Algebraic Data Type),可以实现 ...

  3. Java--关于计算表达式中赋值的细节问题

    public class Test { public static void main(String[] args) { int t = 0; int p = 0; int q = 0; int ta ...

  4. 从源码角度理清memcache缓存服务

    memcache作为缓存服务器,用来提高性能,大部分互联网公司都在使用.   前言    文章的阅读的对象是中高级开发人员.系统架构师. 本篇文章,不是侧重对memcache的基础知识的总结,比如se ...

  5. 【转】MyEclipse快捷键大全

    常用快捷键 -------------------------------------MyEclipse 快捷键1(CTRL)------------------------------------- ...

  6. 6to5 – 让你即刻体验 ECMAScript 6 编程

    ECMAScript 6 是下一代的 ECMAScript 标准.ECMAScript 6 的目标是让 JavaScript 可以用来编写复杂的应用程序.函数库和代码的自动生成器. ES6 是这门语言 ...

  7. 尝试加载 Oracle 客户端库时引发 BadImageFormatException。问题记录

    电脑是win8 64位,安装oracle 11g r2 64位的,谁知道一切装完毕后,打开项目却连不上oracle数据了...首先是pl/sql连不上,装了oracle服务器,应该是不用再装客户端,p ...

  8. #8.12.16总结#background transition、animation、transform

    background-origin 设置元素背景图片的原始起始位置.必须保证背景是background-repeat为no-repeat此属性才会生效. background-origin :bord ...

  9. jQuery.clean()方法源码分析(一)

    在jQuery 1.7.1中调用jQuery.clean()方法的地方有三处,第一次就是在我之前的随笔分析jQuery.buildFramgment()方法里面的,其实还是构造函数的一部分,在处理诸如 ...

  10. 原创:phoenix4.6.0连接hbase1.1.2(不使用phoenix-4.6.0-HBase-1.1-client.jar)

    官网上面的例子是在phoenix-4.6.0-HBase-1.1-client.jar完成的,这个jar包含了phoenix4.6连接hbase1.1.2所有的依赖,真是包罗万象(里面竟然还包括了se ...