0
我正在從Amazon S3服務器下載長文件。如果發生任何情況,我會將excpetions記錄到我的服務器數據庫中。我看到的是大量的例外是java.net.SocketTimeoutException:讀超時如何在從服務器讀取數據時處理ReadTimOut異常?
我想這是當用戶在惡劣/較差互聯網覆蓋率發生,但我不知道如果用戶是在惡劣的覆蓋區域,那麼爲什麼那是登錄服務器?(因爲這也通過互聯網完成)。任何身體知道原因?
在此發生異常每次該生產線是
而((numRead = inputStream.read(mBuffer))> = 0)
中怎樣處理該異常?我認爲,當發生異常時,我應該再次嘗試一下,例如5次的時間,通過呼叫
inputStream.read(mBuffer);
我想的是對的嗎?
是否在讀取超時異常後輸入流將有效再次使用?
將調用inputStream.read(mBuffer);將從最後一次流出來恢復?
由於
謝謝你的時間。你能告訴我1件事嗎? 如果發生異常再次調用inputStream.read(mBuffer);將從最後一次流出來恢復? – Arslan 2011-10-18 05:53:36
@Arsian我已經回答了。 '緩衝區在超時後不包含數據。'想想看。發生超時而不是將任何數據傳輸到緩衝區。所以沒有任何數據,這就是爲什麼它正在閱讀,所以沒有什麼可以丟失的。 – EJP 2011-10-18 06:23:18
哦,是的,我以同樣的方式思考。謝謝 – Arslan 2011-10-18 06:42:22