java 直接读数据库下载文件(省略写入本地文件过程)

来源:互联网 发布:java 日志 编辑:程序博客网 时间:2024/06/05 10:19

对于小数据量文件下载,可以实现读取数据库直接下载,目前测试数据(3000条),下载还是很快的,建议导出为文本格式csv;

code view:

// 采用分页方式 按批次写入到输出流中StringBuilder sbuilder = new StringBuilder();String tableHead = "企业名称,变更金额,变更前金额,变更后金额,类型 ,备注,操作人,充值时间"+"\r";sbuilder.append(tableHead);List<Map<String, Object>> companyMoneyList = result.getResult().getList(); //获取查询到的数据String packData = packData(companyMoneyList); // 组装数据sbuilder.append(packData);  //用StringBuilder组装String fileName = new String("fileName.csv".getBytes("UTF-8"),"ISO8859-1");//中文需要编码下response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
response.addHeader("Content-Type","application/octet-stream;charset=UTF-8");
out = response.getOutputStream();out.write(sbuilder.toString().getBytes("UTF-8"));long total = result.getResult().getTotal();if(total > 0){ int totalPage = (int)total / pageSize; totalPage = totalPage == 0 ? 1 : totalPage + 1; for(int i = 2;i <= totalPage;i++){ pageNum = i; companyMoneyList = result.getResult().getList(); packData = packData(companyMoneyList); out.write(packData.getBytes("UTF-8")); }}out.flush();out.close();


注:在之前的测试中,只在window下测试是通过的,到linux环境后出现内容中文乱码问题,经过调试,加了UTF-8 解决中文乱码(标红的部分)



原创粉丝点击