【从android下载文件时出现套接字异常】男儿欲遂平生志,五经勤向窗前读。这篇文章主要讲述从android下载文件时出现套接字异常相关的知识,希望能为你提供帮助。
我使用下面的代码下载android.code中的zip文件工作正常,但有时下载失败并抛出套接字异常。特别是在互联网连接缓慢的时候(我猜)。我还发布了logcat错误信息的屏幕截图。
int count;
URL url = new URL(URL);
URLConnection conexion = url.openConnection();
conexion.connect();
int lenghtOfFile = conexion.getContentLength();
//Log.e("ANDRO_ASYNC", "Lenght of file: " + "="+lenghtOfFile);
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(StorezipFileLocation);
byte data[] = new byte[lenghtOfFile];
long total = 0;
while ((count = input.read(data)) != -1) {
total += c![enter image description here][1]ount;
publishProgress(""+(int)((total*100)/lenghtOfFile));
output.write(data, 0, count);
}output.flush();
output.close();
input.close();
答案
connection reset by peer
通常意味着你正在与一个认为连接已被关闭的同伴交谈。我不明白为什么在关闭FileOutputStream
时会发生这种情况。此外,在您的代码中但在终结器中不会发生异常。是否有可能在出现问题时,您在上层捕获异常并保持连接和文件打开?放弃的连接由最终结果关闭,但为时已晚。
我不确定它是否能解决问题,但使用
finally
子句确保文件和连接正确关闭是一个好习惯。另一答案日志没有说明代码中发生崩溃的位置。是不是还有一些信息没有出现在你的截图中?
它似乎失败了文件输入流的close方法。你可以简单地用try catch块包围对close()的调用,并将你的流设置为null(如果它在关闭时失败)
推荐阅读
- Android - 检测我的应用的其他用户是否在附近
- Android 3g下载和多线程
- Android中的文件下载[关闭]
- 哪里可以找到WordPress的Genesis儿童主题()
- 如何在WordPress中创建漂亮的登陆页面()
- 如何在WordPress中将jQuery升级到最新版本()
- 如何在WordPress单篇文章中显示特色图片()
- 通过两个简单的步骤即可将Joomla K2迁移到WordPress
- 如何在WordPress中使用Google Cloud SQL()