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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 午夜欧美精品久久久久久久久 | 国产成人亚洲综合一区 | 日本色色网 | 中国一级全黄的免费观看 | 欧美深夜影院 | 久久久久久久久久福利 | 四虎www成人影院观看 | 国产乱码精品一区二区三区卡 | 美女一级毛片免费不卡视频 | 日韩一区二区久久久久久 | aaa色| 免费看国产一级特黄aa大片 | 久久视频精品 | 久久综合九色综合国产 | 日本特级爽毛片叫声 | 50-60岁老妇女一级毛片 | 国产成人一区二区三中文 | 亚洲精品国产成人专区 | 亚洲美女性视频 | 国产精品久久自在自线观看 | 成年人黄色小视频 | 2017天天干天天射 | 888午夜不卡理论久久 | 全部无卡免费的毛片在线看 | 中文字幕三级理论影院 | 老子影院午夜伦手机在线看 | 国产高清在线精品免费 | 一个色综合网 | 日本欧美大片 | 日本一区二区三区在线观看 | 成人短视频在线观看视频 | 亚洲国产视频在线 | 亚洲青草视频 | 久久中文字幕日韩精品 | 乱人伦精品一区二区 | 欧美亚洲国产一区 | 97在线视频网站 | 一级特黄牲大片免费视频 | 亚洲国产人成中文幕一级二级 | 一级做a免费视频观看网站 一级做a爰片久久毛片唾 | 日本成本人在线观看免费视频 |