В принципе, у меня есть 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 () никогда не станет истинным, в результате чего строки никогда не будут прочитаны. Однако, если я пропущу "buf.ready ()" Джеймс