我正在从 Amazon S3 服务器下载长文件。如果发生任何异常,我会将异常记录到我的服务器数据库中。我看到大量异常是 java.net.SocketTimeoutException: Read timed out
我认为当用户处于不良/较差的互联网覆盖范围时会发生这种情况,但我想知道用户是否处于不良覆盖范围,那么为什么要登录服务器?(因为这也是通过互联网完成的)。有人知道原因吗?
每次发生该异常的行是
while ((numRead = inputStream.read(mBuffer)) >= 0)
我该如何处理该异常?我想,当异常发生时,我应该再次尝试一下,例如 5 次,通过调用
inputStream.read(mBuffer);
Is I am thinking correct?
Is after read time out exception occur the inputstream will be valid to use again?
Will calling inputStream.read(mBuffer); will be resume from the last stream readed?
谢谢
最佳答案
超时后输入流保持有效,缓冲区不包含任何数据。如果您遇到很多超时,我会从增加超时时间开始。加倍。开始时至少需要 30-60 秒,因为您需要所有数据。
关于java - 从服务器读取数据时如何处理 ReadTimOut 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7794279/