大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Java下載文件的四種方式

Java下載文件的四種方式

更新時間:2021-05-19 15:52:12 來源:動力節點 瀏覽891次

1. 以流的方式下載

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;
? ? }

2. 下載本地文件

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();
? ? ? ? }
? ? }

3. 下載網絡文件

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();
? ? ? ? }
? ? }

4. 支持在線打開的方式

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下載文件的四種方式",希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久久精品久久久久特色影视 | 亚洲精品久久久久久久福利 | 欧美一级毛片片aa视频 | 老色99久久九九精品尤物 | 国产看片视频 | 国产精品1000部在线观看 | 成人欧美一级毛片免费观看 | 国产系列 视频二区 | 一级毛片aaa片免费观看 | 精品久久久久久 | 久久亚洲一级毛片 | 国产精品久久久久久久久免费 | 久久福利资源站免费观看i 久久高清 | 日韩 综合| 国产精品国内免费一区二区三区 | 欧美日韩亚洲精品一区二区三区 | 伊人久久网国产伊人 | 伊人久久久久久久久香港 | 77奇米影视 | 二区国产 | 日韩色吧| 国产成人精品男人免费 | 五月天色婷婷在线 | 大陆一级毛片免费视频观看i | 91一区二区在线观看精品 | 爽爽影院免费观看视频 | 91中文字幕在线视频 | 国产一区二区免费播放 | 一区二区三区在线播放视频 | 97av免费视频| 毛片色情| 亚洲天码中文字幕第一页 | zzijzzij亚洲日本护士 | 国产精品你懂的 | 成年视频免费 | 日韩伦理亚洲欧美在线一区 | 国产午夜精品尤物福利视频 | 亚洲精品久久99久久一 | 热久久视久久精品18国产 | 亚洲欧美日韩一区超高清 | 天天色天天射天天操 |