java创建阻塞_如何从HttpsURLConnection创建Java非阻塞InputStream?
基本上,我有一個URL,當發布新消息時,該URL在聊天室中流xml更新。我想將URL轉換為InputStream并繼續讀取它,只要保持連接并且沒有發送Thread.interrupt()。我遇到的問題是,當有內容要從流中讀取時,BufferedReader.ready()似乎不正確。
我正在使用以下代碼:
BufferedReader buf = new BufferedReader(new InputStreamReader(ins));
String str = "";
while(Thread.interrupted() != true)
{
connected = true;
debug("Listening...");
if(buf.ready())
{
debug("Something to be read.");
if ((str = buf.readLine()) != null) {
// str is one line of text; readLine() strips the newline character(s)
urlContents += String.format("%s%n", str);
urlContents = filter(urlContents);
}
}
// Give the system a chance to buffer or interrupt.
try{Thread.sleep(1000);} catch(Exception ee) {debug("Caught thread exception.");}
}
當我運行代碼并將某些內容發布到聊天室時,buf.ready()永遠不會變為true,從而導致行永遠不會被讀取。但是,如果跳過“
buf.ready()”部分而直接讀取行,則它將阻止進一步的操作,直到讀取行。
我如何a)使buf.ready()返回true,或者b)以防止阻塞的方式執行此操作?
預先感謝,詹姆斯
總結
以上是生活随笔為你收集整理的java创建阻塞_如何从HttpsURLConnection创建Java非阻塞InputStream?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 分布式sql引擎_分布式SQL
- 下一篇: php图片生成缩略图_PHP生成图片缩略