私は大きなファイルを持っています(英語のWikipedia記事データベースのみをXMLファイルとして扱います)。私はBufferedReader
を使って一度に1文字を読んでいます。擬似コードは:EOFを決定するために、whileループ内のBufferedReader準備メソッド?
file = BufferedReader...
while (file.ready())
character = file.read()
これは実際に有効ですか?またはready
は、HDDがデータを返すのを待っているときにfalse
を返すだけです。実際にはEOF
に達していませんか?私はif (file.read() == -1)
を使用しようとしましたが、文字通り見つけることができなかった無限ループに遭遇したようです。
私の統計では、444,380のウィキペディアのページが読み込まれていますが、もっと多くの記事があると思っているので、ファイル全体を読み込んでいるのかどうか疑問に思っています。