Есть ли у сканера собственный буфер для чтения? - PullRequest
0 голосов
/ 18 мая 2019

BufferedReader и BufferedInputStream имеют свои собственные буферы для чтения. Является ли наличие буфера причиной, по которой они могут читать строки одновременно?

Scanner также может читать строки одновременно. Но это не обязательно работает с BufferedReader и BufferedInputStream. Есть ли у него собственный буфер для чтения строки за раз?

Спасибо.

1 Ответ

1 голос
/ 18 мая 2019

Из Документы Oracle , в частности, из этой строки:

Сканер может читать текст с любого объекта, который реализует интерфейс Readable. Если вызов базового метода Readable.read (java.nio.CharBuffer), доступного для чтения, генерирует IOException, то сканер предполагает, что достигнут конец ввода. Самую последнюю исключительную ситуацию IOException, генерируемую базовым читаемым, можно получить с помощью метода ioException ().

Похоже, что Scanner не имеет своего собственного буфера. Он использует буфер из базового объекта (который реализует Readable) и использует регулярные выражения для анализа.

...