我当前在应用程序(InputStream
)中使用import java.io.InputStream
,并且遇到了有关超时的问题。 InputStream
似乎起作用的方式是等待一定数量的位然后继续。对于我的应用程序,这在很多时候都有效,但是在某些情况下,我预计由于超时而导致读取失败。有人知道这样做的方法吗?
我发现了许多创建线程并与read()
函数一起运行并取消它的示例,但是我想知道是否存在一个允许我使用超时的InputStream
的现有类。
最佳答案
这在很大程度上取决于您从何处读取。如果来自文件(或本地)套接字,则没有超时。如果来自远程套接字,则可以在创建套接字时指定超时。如果超时,您应该得到一个例外。使用threads / AsyncTask
是可行的方法,但是除非您使用的是Java NIO,否则通常无法中断已阻止的读取。
不,这不是荒谬的,您如何建议它“自行超时”?有人必须发出超时信号,并且有人要么是某种监视线程,要么是操作系统引发错误。