文件下載java,文件下載javaee

本文目錄一覽:

java 文件下載

這很奇怪啊,下載怎麼會影響到Js腳本呢,看你的下載程序,這相當於一個完整的交互過程,如果要提出改進建議,我會說,你完全浪費 BufferedInputStream的優勢,尤其是這句

byte[] buffer = new byte[fis.available()];

簡直是敗筆中的敗筆,如果是個100m的文件,這要佔多少內存?

建議這樣使用:

byte[] buffer=new byte[4096];

int readByte=0;

while((readByte=fis.read(buffer)0){

toClient.write(buffer,0,readByte);

}

java文件下載為什麼不能下載pdf

java文件下載不能下載pdf的原因:

1、電腦沒裝閱讀器。

2、文件加密了。

3、對應的下載工具不支持。

4、Java類文件是Java程序的二進制表示形式。每一個類文件代表一個類或者接口。不可能在一個類文件中放入多個類或者接口。這樣就使得無論類文件是在哪一種平台上生成,都可以在任何主機上執行。

求問Java文件下載的幾種方式

InputStream fis = new BufferedInputStream(new FileInputStream(path));byte[] buffer = new byte[fis.available()];fis.read(buffer);fis.close();// 清空responseresponse.reset();// 設置response的Headerresponse.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();}} //支持在線打開文件的一種方式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(“” + 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文件下載401

報錯。java文件下載401,是產生報錯了。Java文件是由SunMicrosystems公司,於1995年5月推出的Java程序設計語言和Java平台的總稱。

Java 下載文件的方法怎麼寫

參考下面

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

}

}

//支持在線打開文件的一種方式

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(“” + 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();

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/292098.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-25 14:07
下一篇 2024-12-25 14:07

相關推薦

發表回復

登錄後才能評論