本文目錄一覽:
- 1、用JAVA下載HTTP文件時遇到問題
- 2、java 文件下載出現錯誤信息:org.apache.catalina.connector.ClientAbortException:null
- 3、請問一個java的文件下載的問題,為什麼我的下載每次都看不到進度條,而是一下子就下好了呢?
- 4、java文件下載出錯
- 5、下載java虛擬機啟動器發現致命異常怎麼回事.
- 6、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