一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - JAVA實現下載文件功能的兩種方法

JAVA實現下載文件功能的兩種方法

2020-07-15 14:49奮進的小土豆 JAVA教程

這篇文章主要介紹了JAVA實現下載文件功能的兩種方法,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下

第一種方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
public HttpServletResponse download(String path, HttpServletResponse response) {
  try {
   // path是指欲下載的文件的路徑。
   File file = new File(path);
   // 取得文件名。
   String filename = file.getName();
   // 取得文件的后綴名。
   String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();
 
   // 以流的形式下載文件
   InputStream fis = new BufferedInputStream(new FileInputStream(path));
   byte[] buffer = new byte[fis.available()];
   fis.read(buffer);
   fis.close();
   // 清空response
   response.reset();
   // 設置response的Header
   response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
   response.addHeader("Content-Length", "" + file.length());
   OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
   response.setContentType("application/octet-stream");
   toClient.write(buffer);
   toClient.flush();
   toClient.close();
  } catch (IOException ex) {
   ex.printStackTrace();
  }
  return response;
 }
 
 public void downloadLocal(HttpServletResponse response) throws FileNotFoundException {
  // 下載本地文件
  String fileName = "Operator.doc".toString(); // 文件的默認保存名
  // 讀到流中
  InputStream inStream = new FileInputStream("c:/Operator.doc");// 文件的存放路徑
  // 設置輸出的格式
  response.reset();
  response.setContentType("bin");
  response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
  // 循環取出流中的數據
  byte[] b = new byte[100];
  int len;
  try {
   while ((len = inStream.read(b)) > 0)
    response.getOutputStream().write(b, 0, len);
   inStream.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
 
 public void downloadNet(HttpServletResponse response) throws MalformedURLException {
  // 下載網絡文件
  int bytesum = 0;
  int byteread = 0;
 
  URL url = new URL("windine.blogdriver.com/logo.gif");
 
  try {
   URLConnection conn = url.openConnection();
   InputStream inStream = conn.getInputStream();
   FileOutputStream fs = new FileOutputStream("c:/abc.gif");
 
   byte[] buffer = new byte[1204];
   int length;
   while ((byteread = inStream.read(buffer)) != -1) {
    bytesum += byteread;
    System.out.println(bytesum);
    fs.write(buffer, 0, byteread);
   }
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

第二種方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public void downLoad(String filePath, HttpServletResponse response, boolean isOnLine) throws Exception {
  File f = new File(filePath);
  if (!f.exists()) {
   response.sendError(404, "File not found!");
   return;
  }
  BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
  byte[] buf = new byte[1024];
  int len = 0;
 
  response.reset(); // 非常重要
  if (isOnLine) { // 在線打開方式
   URL u = new URL("file:///" + filePath);
   response.setContentType(u.openConnection().getContentType());
   response.setHeader("Content-Disposition", "inline; filename=" + f.getName());
   // 文件名應該編碼成UTF-8
  } else { // 純下載方式
   response.setContentType("application/x-msdownload");
   response.setHeader("Content-Disposition", "attachment; filename=" + f.getName());
  }
  OutputStream out = response.getOutputStream();
  while ((len = br.read(buf)) > 0)
   out.write(buf, 0, len);
  br.close();
  out.close();
 }

以上就是JAVA實現下載文件功能的兩種方法的詳細內容,更多關于JAVA實現下載文件的資料請關注服務器之家其它相關文章!

原文鏈接:https://www.cnblogs.com/xiaoyue1606bj/p/10985764.html

延伸 · 閱讀

精彩推薦
  • JAVA教程Java定時任務的三種實現方法

    Java定時任務的三種實現方法

    在應用里經常都有用到在后臺跑定時任務的需求。舉個例子,比如需要在服務后臺跑一個定時任務來進行垃圾回收 ...

    Java教程網4632019-11-18
  • JAVA教程Java的布爾類型基本介紹

    Java的布爾類型基本介紹

    這篇文章主要介紹了Java的布爾類型,是Java入門學習中的基礎知識,需要的朋友可以參考下 ...

    goldensun5172020-01-12
  • JAVA教程學Java做項目需要學習的一些技能

    學Java做項目需要學習的一些技能

    這篇文章主要介紹了學Java做項目需要學習的一些技能,例如JavaSE、Servlet、JSP等,總結了他們中需要學習的東西,都是一些經驗總結,需要的朋友可以參考下 ...

    JAVA教程網3902019-11-25
  • JAVA教程java圖片格式轉換的三段代碼

    java圖片格式轉換的三段代碼

    這篇文章主要分享了java圖片格式轉換的三段代碼,小編查找資料整理了java圖片格式轉換的三段不同代碼,推薦給大家。 ...

    lijiao4592020-01-21
  • JAVA教程java通過模擬post方式提交表單實現圖片上傳功能實例

    java通過模擬post方式提交表單實現圖片上傳功能實例

    這篇文章主要介紹了java通過模擬post方式提交表單實現圖片上傳功能實例,涉及Java針對表單的提交操作響應及文件傳輸的相關技巧,具有一定參考借鑒價值,需...

    5iasp3862020-01-15
  • JAVA教程Java 測試URL地址是否能正常連接的代碼

    Java 測試URL地址是否能正常連接的代碼

    本文給大家分享兩段代碼分別是java測試URL地址是否能正常連接和Java檢測URL是否可用或者可打開的代碼,代碼都很簡單,有需要的朋友可以參考下 ...

    冬瓜茶飲料1792020-06-05
  • JAVA教程Spring Boot 整合 JWT的方法

    Spring Boot 整合 JWT的方法

    這篇文章主要介紹了Spring Boot 整合 JWT的方法,文中實例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下 ...

    認真對待世界的小白3382020-07-05
  • JAVA教程Java并發控制機制詳解

    Java并發控制機制詳解

    這篇文章主要為大家詳細介紹了Java并發控制機制,什么是Java并發控制機制,Java并發控制機制的作用,感興趣的小伙伴們可以參考一下 ...

    ririlu4052020-06-08
主站蜘蛛池模板: 好姑娘在线观看完整版免费 | 成人观看免费观看视频 | 欧美丰满大乳大屁在线观看股 | 国产99精品免费视频看6 | 19+韩国女主播激情vip视频在线 | 日本高清免费观看 | 好爽视频 | 国产黄频 | 日韩色图区 | 色妞女女女女女bbbb | 18videossex性欧美69 | 富士av105 | 四虎永久成人免费 | 射18p| 青青五月天 | 毛片视频在线免费观看 | 国产精视频 | 男人和女人日比 | 成人欧美一区二区三区黑人 | 52av我爱avhaose01好 | 亚洲天堂成人在线观看 | 青青草原在线 | 9久热这里只有精品视频在线观看 | 亚洲国产日韩欧美在线vip1区 | 久99久热只有精品国产99 | 二次元美女挤奶漫画 | 亚洲AV无码专区国产乱码网站 | 男人jj视频 | 欧美日韩国产一区二区三区欧 | 亚洲图片一区二区 | 精品国产原创在线观看视频 | 国产成人综合一区精品 | 丰满在线观看 | 爽好舒服快想要免费看 | 亚洲婷婷在线视频 | 色婷婷精品 | 国产精品一区二区三区免费 | 幻女free性俄罗斯第一次摘花 | 俄罗斯大白屁股 | 国产精品xxxav免费视频 | 亚洲高清国产拍精品影院 |