java下載文件的疑問(java文件下載失敗)

本文目錄一覽:

用JAVA下載HTTP文件時遇到問題

import java.net.*;

import java.io.*;

public class URLConnectionDemo{

    public static void main(String[] args)throws Exception{

        URL url = new URL(“”);

        URLConnection uc = url.openConnection();

        String fileName = uc.getHeaderField(6);

        fileName = URLDecoder.decode(fileName.substring(fileName.indexOf(“filename=”)+9),”UTF-8″);

        System.out.println(“文件名為:”+fileName);

        System.out.println(“文件大小:”+(uc.getContentLength()/1024)+”KB”);

        String path = “D:”+File.separator+fileName;

        FileOutputStream os = new FileOutputStream(path);

        InputStream is = uc.getInputStream();

        byte[] b = new byte[1024];

        int len = 0;

        while((len=is.read(b))!=-1){

            os.write(b,0,len);

        }

        os.close();

        is.close();

        System.out.println(“下載成功,文件保存在:”+path);

    }

}

//給你一個下載的例子吧,僅供參考。

java 文件下載出現錯誤信息:org.apache.catalina.connector.ClientAbortException:null

可能是指定了文件大小的問題。猜測ie是是下載到了指定的位元組後自己斷開了,導致伺服器報錯。把這句去掉試試:response.setHeader(“Content-Length”, String.valueOf(fileLength));

請問一個java的文件下載的問題,為什麼我的下載每次都看不到進度條,而是一下子就下好了呢?

建立新的線程來處理下載。去看Thread的API有詳細說明。例如本來是:

downloading();

System.out.println(“下載完成”);

就改成:

class DownloadListener {//這個class自己找個地方放。

public void downloadInProgress(double percent) {

System.out.println(“已下載” + percent);

}

public void downloadCompleted() {

System.out.println(“已下載完成”);

}

}

//從這裡開始應該被改成的內容

DownloadListener downloadListener = new DownloadListener();

new Thread() {

public void run() { //這裡寫第二線程的內容

downloading(downloadListener);//於是downloadListener被傳入了downloading函數,就可以在downloading函數內部通過呼叫downloadListener的downloadInProgress和downloadCompleted來通知第一線程下載情況。

}

}.start(); //第一線程會在這裡啟動第二線程,然後不管第二線程執行了什麼是否完成,直接執行下一句。

System.out.println(“第二線程已經啟動”);

//例子里很多System.out.println是為了簡明。實際情況一般是修改一個給用戶看的狀態欄JLabel,這裡下載進行中時,應該是更新一個JProgressBar。

java文件下載出錯

1、response.reset();不應該去reset

2、你參考下我以前寫的這段下載pdf的文件吧,稍改下肯定能解決樓主的問題了。

ServletOutputStream out = res.getOutputStream();

// 用於解決下載後的中文亂碼

String contentType = getContentType(fileExt);

// contentType=contentType+”;charset=gbk”;

res.setContentType(contentType);

System.out.println(“顯示下載的名稱是:——————————-“

+ temp);

String contentHeader = “attachment” + “;” + “filename=\””

+ URLEncoder.encode(temp, “UTF-8”) + “\””;

res.setHeader(“Content-disposition”, contentHeader);

System.out.println(“contentHeader is =” + contentHeader);

// int MAX_FILE_SIZE = 3 * 1024 * 1024; //此處設置文件最大尺寸,對本程序,不設置即可,3M

int byte_unit = 1024;

// byte[] buffer = new byte[MAX_FILE_SIZE];

byte[] buffer = new byte[byte_unit];// 一次性讀取文件的數據長度

int length = 0;

while ((length = is.read(buffer)) != -1) {

out.write(buffer, 0, length);

}

if (is != null)

is.close();

if (out != null) {

out.flush();

out.close();

}

// 獲得內容類型

private static String getContentType(String fileExt) {

String contentType = ” “;

if (fileExt == null)

contentType = ” “;

else if (fileExt.equals(“doc”))

contentType = “application/msword “;

else if (fileExt.equals(“pdf”))

contentType = “application/pdf”;

else if (fileExt.equals(“jpg”))

contentType = “image/jpeg”;

else if (fileExt.equals(“gif”))

contentType = “image/gif “;

else if (fileExt.equals(“bmp”))

contentType = “image/bmp “;

else if (fileExt.equals(“txt”))

contentType = “text/plain”;

else if (fileExt.equals(“xls”))

contentType = “application/-excel”;

return contentType;

}

下載java虛擬機啟動器發現致命異常怎麼回事.

修復Java虛擬機錯誤的解決方案:

1.為Java設置新的系統變數

當Java需要更大的全局最大堆內存大小時,通常會出現Java虛擬機錯誤。通過擴展分配給Java的最大RAM來解決該問題。用戶可以通過建立新的Java System Variable來實現,如下所示。

使用Windows鍵+ R鍵盤快捷鍵打開運行。

在「運行」中輸入「sysdm.cpl」,然後單擊「 確定」以在下面的圖像中打開窗口。

選擇該窗口上的「高級」選項卡。

單擊「 環境變數」按鈕以打開下面的窗口。

單擊「 系統變數」框下的「 新建」按鈕。

在「變數名稱」文本框中輸入「_JAVA_OPTIONS」。

然後在「變數值」文本框中輸入「-Xmx512M」,這會將RAM分配增加到512 MB。

單擊「 確定」按鈕關閉窗口。

然後按環境窗口上的確定按鈕。

2.選擇「以管理員身份運行Java選項」

Java虛擬機錯誤也可能是由於管理員許可權不足造成的。因此,某些用戶可能需要為Java分配管理員許可權。用戶可以在Windows 10中為Java分配管理員許可權,如下所示。

使用Windows鍵+ Q鍵盤快捷鍵打開Cortana。

在搜索框中輸入「Java」。

然後右鍵單擊Java並選擇打開文件位置以在文件資源管理器中打開Java的文件夾。

現在,用戶可以右鍵單擊java.exe並選擇「 屬性」。

選擇兼容性選項卡。

選擇「以管理員身份運行此程序」選項。

選擇「 應用」選項。

單擊「 確定」關閉窗口。

3.重新安裝Java

重新安裝Java也可能會修復某些用戶的Java虛擬機錯誤。首先,在「運行」中輸入「appwiz.cpl」並單擊「 確定 」 ,卸載當前安裝的Java版本。

在搜索框中輸入「Java」。

選擇Java,然後單擊卸載。

在打開的任何確認窗口中單擊是。

此後,重新啟動Windows。

然後在瀏覽器中打開Java下載頁面。

用戶需要32位Java用於32位程序,64位Java用於64位軟體。如果有疑問,最好的辦法是通過單擊Windows Offline和Windows Offline 64位來下載和安裝兩個Java版本。

此後,打開Java安裝嚮導。

單擊安裝嚮導上的「 安裝」按鈕。

JAVA 文件下載問題

如果是本地伺服器的話,應該把文件發布,會生成一個url ,用這個url就可以下載了。

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

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

相關推薦

發表回復

登錄後才能評論