BufferedReader не сообщает «готово», когда должно

Я пытаюсь прочитать текст из веб-документа с помощью BufferedReader через InputStreamReader по URL-адресу (к файлу на некоторых Сервер Apache).

String result = "";
URL url = new URL("http://someserver.domain/somefile");
BufferedReader in = null;
in = new BufferedReader(new InputStreamReader(url.openStream(), "iso-8859-1"));

result += in.readLine();

Теперь это работает нормально. Но, очевидно, я бы хотел, чтобы читатель прочитал не одну строку, а столько, сколько есть в файле.
Глядя на API BufferedReader, следующий код должен делать именно это:

while (in.ready()) {
    result += in.readLine();
}

Т.е. читать все строки, пока есть другие строки, останавливаться, когда строк больше нет. Однако этот код не работает - читатель просто never сообщает ready () = true !

Я даже могу распечатать значение ready () прямо перед чтением строки (которая читает правильная строка из файла), но читатель сообщит « false ».

Я что-то делаю не так? Почему BufferedReader возвращает " false " при готовности, когда действительно есть что читать?

8
задан fgysin reinstate Monica 21 January 2011 в 14:40
поделиться