BufferedReader ready метод в цикле while для определения EOF?

У меня есть большой файл (статьи английской Википедии только база данных в виде файлов XML). Я читаю по одному символу, используя BufferedReader . Псевдокод:

file = BufferedReader...

while (file.ready())
    character = file.read()

Это действительно так? Или готов просто вернет false , когда он ожидает, пока жесткий диск вернет данные, а не фактически, когда будет достигнут EOF ? Я пытался использовать if (file.read () == -1) , но, похоже, натолкнулся на бесконечный цикл, который я буквально не мог найти.

Мне просто интересно, читает ли он все файл, согласно моей статистике, было прочитано 444 380 страниц Википедии, но я подумал, что статей гораздо больше.

5
задан vallismortis 28 January 2016 в 01:43
поделиться