Ответ 1
BufferedStream
- это просто буфер поверх существующего потока. MemoryStream
- это буфер для всего потока - он не привязан к другому. Вы можете попросить его записать себя в другой поток в любое время, но это не то же самое.
Одна из основных причин буферизации - избегать частой записи на дорогостоящие ресурсы. Однако это не означает, что вы хотите буферизовать все данные в памяти - этого достаточно, чтобы избежать очень маленьких записей. Например, если FileStream
не имеет своей собственной стратегии буферизации, то ее упаковка в BufferedStream
может закончиться тем, что буфер составляет всего 8 КБ, даже если вы пишете мегабайты данных. Как отмечалось в комментариях, FileStream
имеет достаточную буферизацию, что использование BufferedStream
в сочетании с ней бессмысленно.