Задать вопрос
@artemfisher

Какие потоки имеют внутренний буфер в Java IO?

Добрый день!

В одних источниках пишут, что потоки OutputStream и Writer и их подклассы имеют внутренний буфер и автоматически буферизуются, а InputStream и Reader и их потомки - нет. К тому же они реализуют интерфейс Flushable.

В тоже время в документации написано, что, например, PipedInputStream и FileReader имеют внутренний буфер и следовательно автоматически буферизуются. При этом они НЕ реализуют интерфейс Flushable.

Так как однозначно понять какие потоки содержат внутренний буфер и автоматически буферизуются, а какие нет? Я так понимаю, что некоторые классы, которые не реализует интерфейс Flushable, все равно могут содержать внутренний буфер и автоматически буферизоваться? Т.е. интерфейс Flushable не показатель?
  • Вопрос задан
  • 84 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Ты задаешь вопросы в основном по абстрактным классам. А в них обычно нет ничего интересного.
И размер буфера это как раз особенности реализации в наследнике.

Для буферизации InputStream можно использовать такую обертку.

BufferedInputStream strm = new BufferedInputStream(new FileInputStream("file"), 128 * 1024);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы