Я пытаюсь прочитать текст из веб-документа, используя 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();
}
т.е. читать все строки, пока строк больше, останавливаться, когда строк больше нет. Однако этот код не работает - читатель просто никогда сообщает ready () = true !
Я могу даже напечатать значение ready () прямо перед чтением строки (которая читает правильную строку из файла), но читатель сообщит « false ».
Я что-то не так делаю? Почему BufferedReader возвращает ' false ' в состоянии готовности, когда есть что прочитать?