Я написал программу, в которой я использовал сканер для чтения строк из файлов журнала и анализа каждой строки, чтобы найти что-то важное. Важно, чтобы я прочитал каждую строку файла журнала. Я написал следующий фрагмент кода для сканирования каждой строки
Scanner s = new Scanner(new File("Large.log"));
while(s.hasNextLine())
{
String line = s.nextLine();
//do the processing of the log line
}
Приведенный выше код ведет себя странным образом. Он останавливает чтение строк после случайного числа строк [примерно после 1 миллиона строк]. Я изменил приведенный выше код, чтобы проверить последнюю прочитанную строку, а также проверил файл журнала, используя Notepad ++. После этой конкретной строки в файле осталось много строк. Я добавил еще один System.out.println(s.hasNextLine())
после окончания цикла while
, и он печатает false.
Однако, если я попытаюсь сделать выше, используя BufferedReader
, программа работает нормально. Есть ли какие-либо ограничения в использовании утилит IO в Java?