Java 导出CSV文件及实现web下载CSV
本文主要介绍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相关推荐
- 使用java导出pdf文件
使用java导出pdf文件 itext itext的使用 JasperReports JasperReports与itext的区别 Jaspersoft Studio 工具简介 Jaspersoft ...
- Java导出大批量数据(文件格式篇xls,xlsx,csv)
根据最近写出的导出方法 打算在文章中记录总结下学习心得 java导出我准备分为三篇文章介绍 分批查询导出篇https://blog.csdn.net/weixin_56567361/article/d ...
- java里面的文件上传与下载
java里面的文件上传与下载 文件的上传与下载主要用到两种方法: 1.方法一:commons-fileupload.jar commons-io.jar apache的commons-fileuplo ...
- Java导出excel文件以.xlsx后缀结尾,可设置部分单元格只读
前言 最近在做一个小项目,有个模块的功能涉及到excel的导入导出,并且要求对导出的excel文件部分列和单元格设置为只读不可更改,在网上到处查找了一番资料,结合自己的想法,发现也并不难,这里整理记录 ...
- 咖啡汪日志——JAVA导出pdf文件加水印 文字+图片、文字
咖啡汪日志--JAVA导出pdf文件加水印 文字和图片.文字 hello,又大家见面了! 作为一只不是在戏精就是在戏精路上的哈士奇,今天要展示给大家的就是如何快捷地给pdf文件增加各种水印.嗷呜呜,前 ...
- java导出excel文件(标题为中文乱码)
1 Java导出Excel文件 function excelOut(){ window.location.href="../getFileToExcel/"+taskId; } ...
- java 读取远程文件并让浏览器下载
java 读取远程文件并让浏览器下载 @RequestMapping("/downLoadFile")@ResponseBodypublic ResponseEntity<b ...
- csv和excel php 解析_php读取csv文件(excel可另存为csv格式文件)
csv文件简介 看到这个题目大家一定莫名其妙,这个csv文件和office有啥关系.呵呵,细心地朋友在用excel的时候会发现,excel可以另存为csv格式.我之前也对这个东西没什么了解,只是知道e ...
- python pandas 处理相同标题的csv文件_Python使用pandas处理CSV文件的实例讲解
Python中有许多方便的库可以用来进行数据处理,尤其是Numpy和Pandas,再搭配matplot画图专用模块,功能十分强大. CSV(Comma-Separated Values)格式的文件是指 ...
最新文章
- ios 图片自动轮播
- 标号的类型是near还是far有什么区别,作用是什么?
- 面试必问:读写一致性,你需要思考的问题
- glid加载不出来图片
- bzoj1084: [SCOI2005]最大子矩阵
- [Java基础]Stream流的常见中间操作方法
- Object类的hashCode()方法
- android arcgis 绘制圆_arcgis for android 定位 圆
- java中bool_java中boolean用法
- 局域网服务器时间自动校准,实现局域网内服务器时间同步的方法
- 焊接工时简便计算工具_2020年新版机械加工工时费用计算(17页)-原创力文档...
- vue项目中,网页地址栏添加小图标
- 台湾 计算机术语,快取,陣列,程式,这些台湾的计算机术语,你知道几个?|冷知识...
- 3D视觉从入门到精通知识星球
- 帝国CMS系统提示登录超时解决办法
- Chapter Four : Python 序列之列表、元组操作详解合集
- Spring事务实现的方式及底层原理
- Ubuntu20安装wxPython
- modbus tcp通讯modbus4j使用说明
- 反转链表问题的递归解法
热门文章
- 液晶显示器不宜使用屏幕保护程序
- android多国语言---简写对应国家code
- 移动端h5调起高德地图、百度地图实现路线及路况查询
- 疯狂Android讲义(第2版)
- C语言打印杨辉三角的多种方法
- iOS 第三方 汇总
- 放款2500亿仅占1%,度小满要做消费金融拉动内需的新动力?
- 腾讯通报内部反腐情况:开出48人惩治名单;华为预计2022年全员每股分红1.61元;Chromium使用Rust语言|极客头条
- QT Creator 应用程序*.exe文件打包发布详细教程【绿色便携形式 和 安装包形式】
- 蛮力法的相关问题总结