[Input|Output]Streams существуют с JDK1.0, а их символьные аналоги Readers|Writers существуют с JDK1.1.
Большинство концепций кажутся похожими, за одним исключением: базовые классы потоков объявляют абстрактный метод, который обрабатывает один один байт за раз, в то время как базовые читатели/писатели< /strong> классы объявляют абстрактный метод, который обрабатывает целые char
-массивы.
Таким образом, если я правильно понимаю, каждый переопределенный класс stream ограничен обработкой отдельных байтов (таким образом, выполняется как минимум один вызов метода для каждого байта!), а переопределенный < strong>программам чтения/записи нужен только вызов метода для каждого массива (-буфера).
Разве это не огромная проблема с производительностью?
Может ли поток быть реализован как подкласс InputStream
или OutputStream
, но тем не менее основываться на byte
-массивах?