java實現檔案下載的兩種方式
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();
}
}
參考地址:https://blog.csdn.net/pangqiandou/article/details/53234586
https://blog.csdn.net/wangfeng8720/article/details/6588679
相關推薦
java實現二分查詢-兩種方式
二分查詢是一種查詢效率非常高的查詢演算法。又稱折半查詢。 起初在資料結構中學習遞迴時實現二分查詢,實際上不用遞迴也可以實現,畢竟遞迴是需要開闢額外的空間的來輔助查詢。本文就介紹兩種方法 二分查詢演算法思想 有序的序列,每次都是以序列的中間位置的數來與待查詢的關鍵字進行比
java實現檔案下載的兩種方式
public HttpServletResponse download(String path, HttpServletResponse response) { try { // path是指欲下載的檔案的路徑。 Fi
java實現檔案下載的三種方式
public HttpServletResponse download(String path, HttpServletResponse response) { try {
JAVA載入配置檔案的兩種方式
一: package days_01; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.sql.Connection; impor
JAVA解析Excel檔案的兩種方式 --Poi技術
目前有兩種比較主流的技術解析Excel檔案,這裡我講解的是Poi技術的實現。 話不多話,Poi包裡有4個主要的類,包括: Workbook------工作表,通過WorkbookFactory的create(FileInputStream fis)方法獲取, Sheet--
java實現同步的幾種方式(總結)
副本 增刪改 否則 都是 fin ret 語義 value art 為何要使用同步? java允許多線程並發控制,當多個線程同時操作一個可共享的資源變量時(如數據的增刪改查), 將會導致數據不準確,相互之間產生沖突,因此加入同步鎖以避免在該線程沒有完成操
CSS3實現動畫的兩種方式
logs del pin 屬性 cnblogs ase http eve 括號 1、設置transition設置過渡,添加transform設置形狀,形成動畫效果,如下: .divadd { transition: All 0.4s ease-in-out;
css實現透明的兩種方式及其區別
白色 class 子節點 new 透明度 區別 方式 ron pre 一、opacity:0~1 值越高,透明度越低,下面為示例 選擇器{ opacity:0.5 } 選擇器匹配到的節點們,包括節點們的孩子節點,都會實現%50透明,另 0.5 可直
java Web釋出的兩種方式
一種是直接呼叫API: Endpoint.publish("http://192.168.14.117:8888/java6ws/Java6WS", new Java6WS()); Endpoint.publish是一個後臺執行緒,一旦釋出了就會一直等待處理Web服務的請求,只有當mai
beans.xml引入.properties檔案的兩種方式
方法一: <context:property-placeholder location="classpath:config.properties"/> 方法二: <bean class="org.springframework.beans.factory.con
python 讀取wav 音訊檔案的兩種方式
python 中,常用的有兩種可以讀取wav音訊格式的方法,如下所示: 1 import scipy 2 from scipy.io import wavfile 3 4 import soundfile as sf 5 6 fs,data = wavfile.read(
java 傳遞引數的兩種方式
Java中沒有指標,所以也沒有引用傳遞了,僅僅有值傳遞不過可以通過物件的方式來實現引用傳遞 類似j
Java獲取年月日的兩種方式
方式一: Calendar calendar = Calendar.getInstance(); System.out.println(calendar.get(Calendar.YEAR)); Sy
前端資料流檔案下載三種方式
1、直接使用get請求方式進行下載: window.open(`${url}?${qs.stringify(param)}`, '_blank'); 2、使用form 表單post請求進行下載: const postDownloadFile = (action, param) =>
HttpClient 傳輸檔案的兩種方式
1. org.apache.commons.httpclient.HttpClient package com.skd.util; import com.skd.common.Constant; import com.skd.common.Event; import org.apa
js 圖片base64轉file檔案的兩種方式
最近專案中需要實現把圖片的base64編碼轉成file檔案的功能,然後再上傳至伺服器。起初是直接通過new File()的方式進行轉換,在各個主流的瀏覽器基本上都支援,Android也沒問題,但是在ios系統埋了個坑,ios11.4以下的系統上傳失敗。定位bu
實現AJAX的兩種方式
第一種通過XMLHttpRequest實現: 需要手動建立XMLHttpRequest物件,較繁瑣。 js程式碼: <script type="text/javascript"> function getComments(){ //獲得評論框內
KEIL / MDK生成BIN檔案的兩種方式,直接複製就能用
在After Build/Rebuild選項卡中,勾選 "Run # 1",在後面輸入框寫入bin檔案生成方式,如下 圖1 第一種方式:設定絕對路徑(個人實踐過,沒有成功,不知道為什麼) "D:\Program Files\MDK516\ARM\ARMCC\bin\
不用自定義,ImageView實現圓角的兩種方式
不多廢話,直切主題。 方案一、利用CardView巢狀ImageView實現圓角。具體實現方式見文章《CardView的使用》 方案二、利用Glide的RequestOptions.bitmapTransform來實現,很簡單,具體如下: RoundedCorn
Java實現克隆的三種方式
1. 淺克隆 2. 深克隆 3. 利用序列化實現深克隆 1、淺複製(淺克隆)這種淺複製,其實也就是把被複制的這個物件的一些變數值拿過來了。最後生成student2還是一個新的物件。 public class