java创建阻塞_如何从HttpsURLConnection创建Java非阻塞InputStream?
基本上,我有一個(gè)URL,當(dāng)發(fā)布新消息時(shí),該URL在聊天室中流xml更新。我想將URL轉(zhuǎn)換為InputStream并繼續(xù)讀取它,只要保持連接并且沒(méi)有發(fā)送Thread.interrupt()。我遇到的問(wèn)題是,當(dāng)有內(nèi)容要從流中讀取時(shí),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.");}
}
當(dāng)我運(yùn)行代碼并將某些內(nèi)容發(fā)布到聊天室時(shí),buf.ready()永遠(yuǎn)不會(huì)變?yōu)閠rue,從而導(dǎo)致行永遠(yuǎn)不會(huì)被讀取。但是,如果跳過(guò)“
buf.ready()”部分而直接讀取行,則它將阻止進(jìn)一步的操作,直到讀取行。
我如何a)使buf.ready()返回true,或者b)以防止阻塞的方式執(zhí)行此操作?
預(yù)先感謝,詹姆斯
總結(jié)
以上是生活随笔為你收集整理的java创建阻塞_如何从HttpsURLConnection创建Java非阻塞InputStream?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 分布式sql引擎_分布式SQL
- 下一篇: php图片生成缩略图_PHP生成图片缩略