本文主要介绍Java 导出CSV文件到本地及实现web下载CSV。


1.Java 导出CSV文件到本地

csvWriter:

package com.csvio;import java.io.BufferedWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.List;public class CsvWriter extends BufferedWriter {/*** set wirter* * @param out writer*/public CsvWriter(final Writer out) {super(out);}/*** csv Write line* * @param csvLine*            csv line* @throws IOException IOException*/public void writeLine(final List<String> csvLine) throws IOException {StringBuffer sb = new StringBuffer();for (int i = 0; i < csvLine.size(); i++) {String line = csvLine.get(i);if (line == null) {line = "";}sb.append("\"").append(line.replaceAll("\"", "\"\"")).append("\",");}super.write(sb.deleteCharAt(sb.length() - 1).toString());super.newLine();}}

Student.java

package com.csvio;public class Student {private String name;private String sex;private int age;public Student() {}public Student(String name, String sex, int age) {this.name = name;this.sex = sex;this.age = age;}public int getAge() {return age;}public String getName() {return name;}public String getSex() {return sex;}public void setAge(int age) {this.age = age;}public void setName(String name) {this.name = name;}public void setSex(String sex) {this.sex = sex;}@Overridepublic String toString() {return "Student [toString()=" + this.name + "-->" + this.sex + "-->"+ this.age + "]";}
}

client:

package com.csvio;import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;public class CsvClient {/*** @param args*/public static void main(String[] args) {File file = getFile();List<Student> stooges = new ArrayList<Student>();for (int i=0;i<5;i++){Student stu = new Student();stu.setAge(i+10);stu.setName("name " +i);stu.setSex(i/2==0 ?"boy":"girl");stooges.add(stu);}CsvWriter cw = null;try {
// J2EE Web下载时为下面注释的代码,传人的参数是HttpServletResponse
//            cw = new CsvWriter(response.getWriter());cw = new CsvWriter(new PrintWriter(file));for (Student stu : stooges) {cw.writeLine(getCsvLine(stu));}cw.flush();} catch (Exception e) {e.printStackTrace();} finally {try {if (cw != null) {cw.close();}} catch (IOException e) {e.printStackTrace();}}System.out.println("Done.");}private static List<String> getCsvLine(Student stu) {List<String> csvLine = new ArrayList<String>();csvLine.add(stu.getName());csvLine.add(Integer.toString(stu.getAge()));csvLine.add(stu.getSex());return csvLine;}private static File getFile() {String path = "E:\\test\\";String filename="abc.csv";File directory = new File(path);if (!directory.exists())directory.mkdirs();File file = new File(path + filename);if (!file.exists()){try {file.createNewFile();} catch (IOException e1) {e1.printStackTrace();}}return file;}}

2. web下载CSV

web下载csv的原理和输出到本地一致,就是将HttpServletResponse的流内容(writer)写入到浏览器,前提是该response的header中content-Type要告诉浏览器以下载模式接受,具体参数参见http://blog.csdn.net/bluefish625/article/details/6659288 。

Java 导出CSV文件及实现web下载CSV相关推荐

  1. 使用java导出pdf文件

    使用java导出pdf文件 itext itext的使用 JasperReports JasperReports与itext的区别 Jaspersoft Studio 工具简介 Jaspersoft ...

  2. Java导出大批量数据(文件格式篇xls,xlsx,csv)

    根据最近写出的导出方法 打算在文章中记录总结下学习心得 java导出我准备分为三篇文章介绍 分批查询导出篇https://blog.csdn.net/weixin_56567361/article/d ...

  3. java里面的文件上传与下载

    java里面的文件上传与下载 文件的上传与下载主要用到两种方法: 1.方法一:commons-fileupload.jar commons-io.jar apache的commons-fileuplo ...

  4. Java导出excel文件以.xlsx后缀结尾,可设置部分单元格只读

    前言 最近在做一个小项目,有个模块的功能涉及到excel的导入导出,并且要求对导出的excel文件部分列和单元格设置为只读不可更改,在网上到处查找了一番资料,结合自己的想法,发现也并不难,这里整理记录 ...

  5. 咖啡汪日志——JAVA导出pdf文件加水印 文字+图片、文字

    咖啡汪日志--JAVA导出pdf文件加水印 文字和图片.文字 hello,又大家见面了! 作为一只不是在戏精就是在戏精路上的哈士奇,今天要展示给大家的就是如何快捷地给pdf文件增加各种水印.嗷呜呜,前 ...

  6. java导出excel文件(标题为中文乱码)

    1 Java导出Excel文件 function excelOut(){   window.location.href="../getFileToExcel/"+taskId; } ...

  7. java 读取远程文件并让浏览器下载

    java 读取远程文件并让浏览器下载 @RequestMapping("/downLoadFile")@ResponseBodypublic ResponseEntity<b ...

  8. csv和excel php 解析_php读取csv文件(excel可另存为csv格式文件)

    csv文件简介 看到这个题目大家一定莫名其妙,这个csv文件和office有啥关系.呵呵,细心地朋友在用excel的时候会发现,excel可以另存为csv格式.我之前也对这个东西没什么了解,只是知道e ...

  9. python pandas 处理相同标题的csv文件_Python使用pandas处理CSV文件的实例讲解

    Python中有许多方便的库可以用来进行数据处理,尤其是Numpy和Pandas,再搭配matplot画图专用模块,功能十分强大. CSV(Comma-Separated Values)格式的文件是指 ...

最新文章

  1. ios 图片自动轮播
  2. 标号的类型是near还是far有什么区别,作用是什么?
  3. 面试必问:读写一致性,你需要思考的问题
  4. glid加载不出来图片
  5. bzoj1084: [SCOI2005]最大子矩阵
  6. [Java基础]Stream流的常见中间操作方法
  7. Object类的hashCode()方法
  8. android arcgis 绘制圆_arcgis for android 定位 圆
  9. java中bool_java中boolean用法
  10. 局域网服务器时间自动校准,实现局域网内服务器时间同步的方法
  11. 焊接工时简便计算工具_2020年新版机械加工工时费用计算(17页)-原创力文档...
  12. vue项目中,网页地址栏添加小图标
  13. 台湾 计算机术语,快取,陣列,程式,这些台湾的计算机术语,你知道几个?|冷知识...
  14. 3D视觉从入门到精通知识星球
  15. 帝国CMS系统提示登录超时解决办法
  16. Chapter Four : Python 序列之列表、元组操作详解合集
  17. Spring事务实现的方式及底层原理
  18. Ubuntu20安装wxPython
  19. modbus tcp通讯modbus4j使用说明
  20. 反转链表问题的递归解法

热门文章

  1. 液晶显示器不宜使用屏幕保护程序
  2. android多国语言---简写对应国家code
  3. 移动端h5调起高德地图、百度地图实现路线及路况查询
  4. 疯狂Android讲义(第2版)
  5. C语言打印杨辉三角的多种方法
  6. iOS 第三方 汇总
  7. 放款2500亿仅占1%,度小满要做消费金融拉动内需的新动力?
  8. 腾讯通报内部反腐情况:开出48人惩治名单;华为预计2022年全员每股分红1.61元;Chromium使用Rust语言|极客头条
  9. QT Creator 应用程序*.exe文件打包发布详细教程【绿色便携形式 和 安装包形式】
  10. 蛮力法的相关问题总结