Обработка таймаута при чтении удаленного файла - PullRequest
0 голосов
/ 18 июля 2011

Я читаю удаленный файл (xml), который отображается веб-сервером на лету. Иногда веб-серверу требуется время для визуализации удаленного файла. Иногда возникает проблема с netowrk и удаленный URL недоступен Использую следующий код:

URL url = new URL(myurl);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String inputLine;
String strOutput = "";
System.out.println("start now");
//my code hangs after  priting start now    sometime.
//i think in.ready blocks the code flow.
if(in.ready() ){         
  while ((inputLine = in.readLine()) != null) {
       strOutput = strOutput + inputLine;
  }
}

Если входной поток не готов, я хочу, чтобы мой код продолжал без блокировки. Как я могу справиться с этим?

Как я могу убедиться, что мой поток кода никогда не блокируется на неопределенный срок?

1 Ответ

1 голос
/ 18 июля 2011

Вы можете установить тайм-аут на соединение URL. См. javadocs .

Но вы должны будете получить свой поток немного по-другому:

URLConnection con = url.openConnection();
con.setReadTimeout(timeout);
InputStream in = con.getInputStream();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...