Сам я не мог воспроизвести это.Но я думаю, что могу пролить свет на то, что происходит.
Внутри сканер использует буфер символов из 1024 символов.Сканер будет по умолчанию читать ваши читаемые 1024 символа, если это возможно, и затем применять шаблон.
Проблема в вашем шаблоне ... он всегда будет соответствовать концу ввода, ноt означает конец вашего входного потока / данных.Когда Java применяет ваш шаблон к буферизованным данным, она пытается найти первое вхождение конца ввода.Поскольку в буфере находится 1024 символа, соответствующий механизм вызывает позицию 1024 как первое совпадение разделителя и все, прежде чем он будет возвращен в качестве первого токена.действительно для использования в Сканере по этой причине.В конце концов, это может быть чтение из бесконечного потока.