- 浏览: 446588 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (369)
- javascript html (20)
- java (31)
- jquery (15)
- jcrop (0)
- JEECG (1)
- ajax (3)
- 反射 (3)
- VI (1)
- mysql (48)
- easyui (1)
- svn (2)
- MD5 加密 (1)
- spring (14)
- ORACLE (8)
- 经验总结 (1)
- TCP/IP协议 (1)
- ICMP协议 (1)
- eclipse (1)
- Reflect (1)
- linux (21)
- android (5)
- excel 操作 (1)
- java tree (1)
- html (1)
- plupload (1)
- mongodb (9)
- aes (1)
- python (1)
- java relax (1)
- highcharts (2)
- json (2)
- java 多线程 (30)
- maven (2)
- 设计模式 (1)
- jsp+js (2)
- 面向对象 (1)
- jvm (16)
- 缓存 (1)
- proxy (1)
- 聊侃 (1)
- 面经 (1)
- java 字节 (1)
- java 类加载器 (2)
- java 基础 (2)
- java 语法糖 (1)
- java 位运算 (1)
- 排序 (3)
- java 服务器性能优化 (19)
- 网络编程 (2)
- jvm 参数设置 (0)
- jersey (1)
- webservice (2)
- nginx+多tomcat 集成 (5)
- nginx (16)
- squid (3)
- memcached (5)
- 正则表达式 (1)
- 常用免费接口 (1)
- jpa (1)
- win7 (1)
- java处理大文件 (1)
- js正则表达式 (1)
- tomcat (1)
- java 敏感字 (1)
- 系统架构优化 (4)
- 学习 (1)
- 本地测试QQ微博第三方登陆 (1)
- java 错误 (1)
- 微信支付 (1)
- https (1)
- httpclient (1)
- awk (2)
- loadrunner (1)
- sql server 2008 (3)
- git (4)
- sql server2008 (1)
- solr (2)
- centos (1)
- 数据存储架构 (3)
- log4j (1)
- weboffice (1)
- 并发编程 (1)
- postgreSQL (0)
- ssl (1)
- openssl (1)
- activeMQ (2)
- IDEA (1)
- shell (1)
- ansible (4)
- docker (2)
- grafana (1)
- jmeter (1)
- TLS (1)
- 将博客搬至CSDN (1)
最新评论
-
dida1990:
啊喔,过去了这么久,不过还是评一个。谁说uuid的hashCo ...
高并发生成订单号(二) -
annan211:
yclovesun 写道使用了uuid,为什么还要machin ...
高并发生成订单号(二) -
yclovesun:
使用了uuid,为什么还要machineId?uuid已经可以 ...
高并发生成订单号(二) -
u013280917:
太深奥,看不懂
mysql优化特定类型的查询
1 controller
@RequestMapping(value = "/{project}/{moduel}/export/product/{productId}", method = RequestMethod.GET) public void exportProductData(HttpServletRequest request, HttpServletResponse response, @PathVariable("project") String project, @PathVariable("moduel") String moduel, @PathVariable("productId") String productId) throws IOException { String baseUrl = String.format("/%s/%s/%s", project, moduel, "export/product"); LOG.info(String.format("正在接收%s请求", baseUrl)); Map<String, Object> reqMap = new HashMap<String, Object>(); reqMap.put("productId", productId); RtResponse rtResponse = reqUrlDefService.getResponse(baseUrl, request, reqMap); Map<String,Object> data = (Map<String, Object>) rtResponse.getData(); Map<String,Map<String,Object>> bytes = (Map<String,Map<String,Object>>) data.get("files"); List<File> files = new ArrayList<File>(); for(Entry<String, Map<String, Object>> map : bytes.entrySet()){ Map<String,Object> byteMap = map.getValue(); String fileName = (String) byteMap.get("fileName"); String contentType = (String) byteMap.get("contentType"); byte[] byt = (byte[]) byteMap.get("fileByte"); File file = new File(fileName); FileOutputStream fos = new FileOutputStream(file); fos.write(byt); files.add(file); fos.close(); } String filename = URLEncoder.encode("product-struct.zip", "UTF-8"); byte[] buf = new byte[1024]; ZipOutputStream out = new ZipOutputStream(new FileOutputStream(filename)); out.setMethod(ZipOutputStream.DEFLATED); for (int i = 0; i < files.size(); i++) { FileInputStream in = new FileInputStream(files.get(i)); out.putNextEntry(new ZipEntry(files.get(i).getName())); int len; while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); } out.closeEntry(); in.close(); } out.close(); int bytesRead = 0; byte[] buffer = new byte[8092]; ByteArrayOutputStream bos = new ByteArrayOutputStream(); InputStream is = new FileInputStream(filename); while ((bytesRead = is.read(buffer, 0, 8092)) != -1) { bos.write(buffer, 0, bytesRead); } response.reset(); response.setHeader("Content-disposition", "attachment;filename=" + filename); response.setContentType("application/x-zip-compressed"); OutputStream os = response.getOutputStream(); os.write(bos.toByteArray()); os.flush(); os.close(); }
2 service
@Override public RtResponse exportProductInfo(RtRequest request) throws Exception { RtResponse response = new RtResponse(); Integer code = ResultCode.FAILURE; String dataJson = ""; Map<String,Map<String,Object>> bytes = new HashMap<String,Map<String,Object>>(); //产品图片 if(AppUtils.isNotBlank(adjuncts)){ for(ProductAdjunct pa : adjuncts){ String fileId = pa.getAdjunctPath(); GridFS gridFS = new GridFS(mongotemplate.getDb(), "file_collections"); DBObject query = new BasicDBObject("_id", fileId); GridFSDBFile gridFSDBFile = gridFS.findOne(query); logger.info("附件接口 文件流内容...{}", gridFSDBFile.getInputStream()); Map<String, Object> maps = new HashMap<String, Object>(); maps.put("fileName", pa.getAdjunctClass()+"-+"+gridFSDBFile.getFilename()); maps.put("contentType", gridFSDBFile.getContentType()); maps.put("fileByte", FileUtils.input2byte(gridFSDBFile.getInputStream())); maps.put("type", pa.getAdjunctClass()); bytes.put(pa.getAdjunctClass(),maps); } } dataJson = JsonUtil.javaObjToJson(productDataObject); Map<String, Object> maps = new HashMap<String, Object>(); maps.put("fileName", "ProductData.txt"); maps.put("contentType", "application/txt"); maps.put("fileByte", dataJson.getBytes("UTF-8")); maps.put("type", "product"); bytes.put("product",maps); data.put("files",bytes); code = ResultCode.SUCCESS; response.setCode(code); response.setData(data); return response; }
发表评论
-
log4j.xml配置文件
2017-08-15 21:19 442<?xml version="1.0& ... -
java dos窗口打包
2017-02-17 19:22 565指定编码 cmd jar包 > jar -cvf xxx ... -
互联网面试实例
2016-12-01 22:34 01 hibernate 原理机制 2 解释1-2个你最熟悉 ... -
java 枚举 根据key获取value
2016-10-26 14:28 3767package com.utcip.crm.common.co ... -
高并发 生成订单号(一)
2015-12-08 15:31 40561 设置主键自增为何不可取 这样的话,数据库本身是单点, ... -
double 浮点数据精确度
2014-12-29 14:45 790/* * * * * 版权 ... -
Java 实现深拷贝
2014-10-10 11:47 684http://developer.51cto.com/art/ ... -
如何计数一个字符在某个字符串中出现的次数?
2014-08-29 12:00 813如何计数一个字符在某个字符串中出现的次数? 使用 ... -
java 内部类作用分析
2014-08-25 13:46 435http://blog.csdn.net/ilibaba/ ... -
dos窗口 编译java工程
2014-07-22 11:54 306cd sts-web mvn jetty:run ... -
设计权限读写系统的思想
2014-05-26 18:54 772读写权限系统的设计 ... -
java 二进制十六进制互转
2014-05-26 15:15 1867/**将16进制转换为二进制 * @param hexS ... -
java 有小数时返回小数,无小数时返回整型
2014-05-22 15:42 1083/** * 对double类型数据操作 忽略. ... -
java 竟态条件与临界区
2014-05-20 15:15 1012竞态条件 & 临界区 当两个线程竞争同一资源 ... -
java web系统 cookie 管理
2014-05-16 16:56 1063第一步 写一个cookieUtil工具类 packa ... -
java 将 json字符串 返回到调用页面成为json
2014-05-15 18:35 1654@MethodResourceDesc(name = ... -
java 处理 大 json 字符串
2014-05-15 18:31 2485java 代码处理 json 字符串,存在很多种方法,最直接的 ... -
达内到底好不好? 达内培训怎么样? 达内培训效果如何? 达内培训出来好找工作吗?谁来为我负责?
2014-05-14 13:35 144达内到底好不好 达内培 ... -
java 实现生产者消费者模式
2014-05-09 10:20 1152package cosu_pro.pc; impor ... -
java 删除服务器附件
2014-03-19 12:06 557request.getSession().getSer ...
相关推荐
Word文档导出,生成的word文档。 解压java2word文件,用MyEclipse导入压缩后的文件
1.将数据导成.csv格式,并压缩成.zip格式后,显示下载提示(含保存文件路径) 2.前后台代码都有哦
包含了使用的jar包,以及一个Java类,实现了使用Java对多目录多层级的文件进行打包,以及对ZIP包进行解压缩的操作。
利用svnkit操作svn,实现对版本修改文件的导出,可以导出多个版本,.java文件将会在本地取出.class文件,导出后压缩成压缩包,主要用于服务器上的资源更新,不需要开发人员去找到对应的.class文件或其他文件压缩然后...
直接可以用的项目。数据量大,导出多个excel然后压缩成zip文件。。。
Java根据Url把多个文件下载到指定的文件夹目录,然后再将文件夹目录打包成zip导出,包括子目录也可以打包,有个简单的导出html页面,点击导出按钮下载zip。
主要为大家详细介绍了Java多文件以ZIP压缩包导出的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
请到网站http://www.apache.org/dyn/closer.cgi/poi/右击超链接2.5.1.zip下载压缩包poi-bin-2.5.1-final-20040804.zip,解压缩后得到如图2.1所示的目录结构。我们主要用到poi-2.5.1-final-20040804.jar这个库文件。...
使用POI、JXL导出大量的数据到Excel很容易造成内存溢出,而CSV采用流的方式将大数据分批并压缩导出
java生成压缩文件 java如何压缩文件
用开源 Apache POI 技术导出Excel,解决导出大数据出现OOM、栈溢出问题,此资源可实现百万级数据多线程分批导出Excel文件,不会内存溢出,生产环境已很稳定的使用者,所以用到的技术很核心、值得参考
主要介绍了Java 批量文件压缩导出并下载到本地示例代码,实现思路首先要把zip流写入到http响应输出流中,再把excel的流写入zip流中,具体示例代码,大家通过本文学习吧
文件包含了 1.POI导入导出的工具类; 2.图片URL导出成图片文件; 3.导出excel和图片压缩包格式文件。 如果下载后有任何问题,可以联系我哦!
代码简单容懂。下载就可以运行。该列子包过了easypoi注解导出exel表格同时导出oss中的图片到exel表格中。
目前项目有一个需求“数据的离线导入导出”,需要将数据分模块导入到不同的excel,然后压缩成数据包下载
java中将多个excel打包成zip文件下载.rar
java实现Excel压缩成Zip导出-附件资源
java_Jxl(导入导出Excel) 导入导出Excel的jar包,与大家共同分享,互相学习
主要为大家详细介绍了java动态导出excel压缩成zip下载的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
里面封装了压缩文件及文件夹的方法,还有以流的形式下载到前端的方法以及删除目录等常用方法,还有前端的下载方法