本文目录一览:
- 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就可以下载了。