我似乎收到了损坏的文件,我需要知道这是否可能,并确保我正确处理它。
我有一个可以下载大量背靠背音乐文件的应用。 如果在使用下面的方法下载时,连接中间连接会突然丢失会发生什么? 我会遇到异常吗?或者我会返回一半已完成(损坏)的数据? 我需要确保我没有尝试保存不完整的数据。
public static InputStream getHTTPRequest(HttpGet getRequest, HttpParams params)
{
final String TAG = "getHTTPRequest";
if (params != null)
{
getRequest.setParams(params);
}
DefaultHttpClient client = new DefaultHttpClient();
if(getRequest == null)
{
Log.d(TAG, "The HttpGet param passed in was null, returning null");
return null;
}
try {
HttpResponse getResponse = client.execute(getRequest);
final int statusCode = getResponse.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
Log.d(TAG, "status not ok");
Log.d(TAG, "status = " + Integer.toString(statusCode));
Log.d(TAG, "url = " + getRequest.getURI().toString());
return null;
}
HttpEntity getResponseEntity = getResponse.getEntity();
return getResponseEntity.getContent();
} catch (IOException e) {
Log.d(TAG, "IOException: getRequest.abort");
getRequest.abort();
}
return null;
}
答案 0 :(得分:0)
在执行IO操作期间可能会抛出几个异常,您应该优雅地处理它们,这是由IOException扩展的完整异常列表http://developer.android.com/reference/java/io/IOException.html
你不需要处理所有这些,但是很少,你可以删除你的文件以防下载损坏的文件。