Приветствую знатоки и светилы проекта JavaRush! При изучении класса Scanner наткнулся на интерфейс Readable, который, как выяснилось позднее, содержит только один метод
int read(CharBuffer cb) throws IOException
и который, судя по аргументу типа CharBuffer, связан именно с этим классом. Суть вопроса заключается в том, каким образом этот интерфейс связан с классом Scanner и его отдельным конструктором?
Scanner(Readable)
Вот пример кода:
FileReader fileReader = new FileReader("Test.txt");
Scanner src = new Scanner(fileReader);
Интересует именно примерная последовательность процессов чтения-записи из файла сквозь CharArray и в конечном счете через Scanner. Моя догадка следующая: InputStream имеет @overraide метод int read(CharBuffer cb) throws IOException и private объект CharArray, из которого Scanner считывает данные в свой private buf для дальнейшего вывода в виде конкретных типов регулярного выражения через методы hasNext() и next()