是否可以通过超时从InputStream读取?具体来说,问题是编写这样的方法:int maybeRead(InputStream in, long timeout)如果数据在‘超时值’毫秒内可用,则返回值与in.read()相同,否则返回值为-2。在该方法返回之前,任何生成的线程都必须退出。为了避免参数,这里的主题是java.io.InputStream,由Sun(任何Java版本)记录。请注意,这并不像看上去那么简单。以下是Sun文档直接支持的一些事实。in.read()方法可能是不可中断的。将InputStream封装在Reader或InterruptibleChannel中没有帮助,因为这些类所能做的就是调用InputStream的方法。如果可以使用这些类,则可以编写一个解决方案,直接在InputStream上执行相同的逻辑。in.Available()返回0总是可以接受的。in.lose()方法可能阻塞或不做任何操作。没有一般的方法来杀死另一个线程。
3 回答

一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
Socket.setSoTimeout()
HttpURLConnection.setReadTimeout()
添加回答
举报
0/150
提交
取消