2013-05-15 48 views
-1

我似乎在收到損壞的文件,我需要知道這是否可能,並確保我正確處理它。如果您在下載中失去連接,會發生什麼情況?

我有一個應用程序,可能會下載一大堆的背靠背音樂文件。 如果使用下面的方法下載時,連接突然中斷連接會發生什麼? 我會發現一個異常嗎?或者我會返回一半完整(損壞)的數據? 我需要確保我沒有試圖保存不完整的數據。

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

有幾個可能進行IO操作,你應該在這裏優雅地處理它們時拋出的異常的例外是由IOException異常http://developer.android.com/reference/java/io/IOException.html擴展

你不需要處理所有這些的完整列表但其中很少,如果損壞的文件被下載,您可以刪除您的文件。

相關問題