51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3685|回复: 1
打印 上一主题 下一主题

[转贴] 阿里外包也是这么难的吗?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-4-9 14:26:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要求外语流畅,多线程会玩,我是真的费劲。
  1. public class DownFile {

  2. public HttpServletResponse download(String path,String name, HttpServletResponse response) {
  3.     try {
  4.         // path是指欲下载的文件的路径。
  5.         File file = new File(path);
  6.         // 取得文件名。
  7.         String filename="";
  8.         if(name!=null&&name.length()!=0){
  9.             filename = name;
  10.         }else{
  11.             filename = file.getName();
  12.         }
  13.         // 取得文件的后缀名。
  14.         String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();

  15.         // 以流的形式下载文件。
  16.         InputStream fis = new BufferedInputStream(new FileInputStream(path));
  17.         byte[] buffer = new byte[fis.available()];
  18.         fis.read(buffer);
  19.         fis.close();
  20.         // 清空response
  21.         response.reset();
  22.         // 设置response的Header
  23.         response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes(),"iso-8859-1"));
  24.         response.addHeader("Content-Length", "" + file.length());
  25.         OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
  26.         response.setContentType("application/octet-stream");
  27.         toClient.write(buffer);
  28.         toClient.flush();
  29.         toClient.close();
  30.     } catch (IOException ex) {
  31.         ex.printStackTrace();
  32.     }
  33.     return response;
  34. }
复制代码

  1. try {
  2.         long sd = new Date().getTime();
  3.         String filename = request.getRealPath("/") + "表名" + DateUtil.format(new Date(), "yyyyMMddhhmmss") + ".xls";
  4.         FileOutputStream fout = new FileOutputStream(filename);
  5.         wb.write(fout);
  6.         fout.close();

  7.         long ed = new Date().getTime();
  8.         System.out.println("---write---" + (ed - sd) + "毫秒,共计" + (ed - sd) / 1000 + "秒");

  9.         DownFile DownFile = new DownFile();
  10.         DownFile.download(filename, "", ServletActionContext.getResponse());
  11.         File file = new File(filename);
  12.         file.delete();
  13.         long aed = new Date().getTime();
  14.         System.out.println("---表名---" + (aed - asd) + "毫秒,共计" + (aed - asd) / 1000 + "秒");
  15.     } catch (Exception e) {
  16.         e.printStackTrace();
  17.     }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2019-4-22 17:19:49 | 只看该作者
看项目的吧
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-25 10:14 , Processed in 0.063750 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表