亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以通過超時從InputStream讀?。?/h1>

是否可以通過超時從InputStream讀???

梵蒂岡之花 2019-06-21 15:13:21
是否可以通過超時從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()只要您在構造/獲取它們時正確地設置了它們,這兩種方法都可以完成所需的任務。把它留給應用程序后面的任意點,而您所擁有的只是InputStream的糟糕設計,導致了非常尷尬的實現。


查看完整回答
反對 回復 2019-06-21
  • 3 回答
  • 0 關注
  • 1227 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號