Java 仅Mac上出现异常:来自服务器的文件意外结束
我正在windows 7上成功地使用以下代码中的“org.apache.commons.io.FileUtils”下载mp3和图像文件:Java 仅Mac上出现异常:来自服务器的文件意外结束,java,http,url,file-io,fileutils,Java,Http,Url,File Io,Fileutils,我正在windows 7上成功地使用以下代码中的“org.apache.commons.io.FileUtils”下载mp3和图像文件: FileUtils.copyURLToFile(new URL(urlString),myFile); 但在mac os x Yosemite版本10.10.2(14C1514)上,我在下载了几次之后就遇到了这个例外: java.net.SocketException: Unexpected end of file from server at
FileUtils.copyURLToFile(new URL(urlString),myFile);
但在mac os x Yosemite版本10.10.2(14C1514)上,我在下载了几次之后就遇到了这个例外:
java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:792)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:789)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1535)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440)
我已尝试添加超时
FileUtils.copyURLToFile(new URL(url),myFile ,60000,60000);
甚至使用其他方法
URLConnection conn = new URL(url).openConnection();
InputStream is = conn.getInputStream();
OutputStream outstream = new FileOutputStream(myFile);
byte[] buffer = new byte[4096];
int len;
while ((len = is.read(buffer)) > 0) {
outstream.write(buffer, 0, len);
}
outstream.close();
更新:
我尝试禁用WiFi(以避免@john提到的任何连接错误)并使用有线以太网,但在下载几次后仍有相同的错误,非常感谢任何帮助。这与ISP有关,问题已解决 您确定测试期间您的WiFi没有断开吗?最近我不得不升级我的2011 Macbook Pro,因为有一个bug导致WiFi周期性下降。如果您正在下载一个大文件,可能会发生这种情况。我将升级到
10.10.3
并重试测试。从:在各种使用场景中提高Wi-Fi性能和连接性
我尝试使用有线连接(禁用wifi),但仍然存在相同的问题,谢谢@john that close:)