黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 Java下載文件的四種方式

Java下載文件的四種方式

更新時(shí)間:2021-05-19 15:52:12 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽925次

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();
? ? ? ? ? ? // 設(shè)置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(); // 文件的默認(rèn)保存名
? ? ? ? // 讀到流中
? ? ? ? InputStream inStream = new FileInputStream("c:/Operator.doc");// 文件的存放路徑
? ? ? ? // 設(shè)置輸出的格式
? ? ? ? response.reset();
? ? ? ? response.setContentType("bin");
? ? ? ? response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
? ? ? ? // 循環(huán)取出流中的數(shù)據(jù)
? ? ? ? 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. 下載網(wǎng)絡(luò)文件

public void downloadNet(HttpServletResponse response) throws MalformedURLException {
? ? ? ? // 下載網(wǎng)絡(luò)文件
? ? ? ? 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());
? ? ? ? ? ? // 文件名應(yīng)該編碼成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();
? ? }

以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"Java下載文件的四種方式",希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产一级特黄aa大片免费 | 在线看www免费看 | 一级做性色a爰片久久毛片免费 | 国产在线视频在线 | 超级碰在线 | 美女一级毛片免费不卡视频 | 免费观看无遮挡www的小视频 | 色欧美色图 | 伊人激情综合网 | 老子影院午夜伦不卡不四虎卡 | 欧美日韩中文一区二区三区 | 欧美日韩片 | 美国一级特色大黄 | 狠狠色噜噜狠狠狠狠狠色综合久久 | 亚洲图片综合网 | 国产一级又色又爽又黄大片 | 午夜在线观看免费观看大全 | 一级午夜a毛片免费视频 | 我要看三级全黄 | 制服丝袜日日 | 免费一级国产生活片 | 一级a毛片免费观看久久精品 | 两个黑人一前一后好爽 | 国产精品400部自产在线观看 | 性欧美黑人巨大videos | 免费精品精品国产欧美在线 | 五月婷婷在线视频观看 | 日韩在线观看视频免费 | 丁香激情综合 | 免费黄色小视频网站 | 亚洲精品123区 | 波多野野结衣1区二区 | 国产手机在线国内精品 | 在线观看国产wwwa级羞羞视频 | 国产精品二区高清在线 | 亚洲一区有码 | 亚洲视频天天射 | 亚洲视频国产视频 | 特级淫片波多野结衣 | 日韩在线黄色 | 成年人视频在线免费观看 |