URL (一部の Apache サーバー上のファイル) で InputStreamReader を介してBufferedReaderを使用して、Web ドキュメントからテキストを読み取ろうとしています。
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();
これで問題なく動作します。しかし明らかに、読者には 1 行だけではなく、ファイル内にある行をすべて読んでもらいたいと思います。
BufferedReader API を見ると、次のコードがまさにそれを行うはずです。
while (in.ready()) {
result += in.readLine();
}
つまり、行が残っている間はすべての行を読み取り、行がなくなったら停止します。ただし、このコードは機能しません。リーダーはready() = trueを報告しません。
行を読み取る (ファイルから正しい文字列を読み取る) 直前に ready() 値を出力することもできますが、リーダーは ' false ' を報告します。
私は何か間違ったことをしていますか?実際に読み取るものがあるのに、BufferedReader が準備完了時に' false ' を返すのはなぜですか?