是否可以通過超時從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
提交
取消