Поскольку Writer
является абстракцией более высокого уровня, чем OutputStream
.Он контролирует кодировку символов базового потока и включает в себя собственные механизмы буферизации.
Если бы вы выполняли прямую запись в OutputStream после предварительного использования Writer, был бы высокий риск повреждения базового потока.либо из-за перепутанной кодировки символов, либо из-за отсутствия буферизованных данных.
Чтобы предотвратить это перепутывание, API сервлета запрещает использовать оба для любого одного ответа.
Практически вы используетеOutputStream для записи двоичного содержимого и Writer для записи текстового содержимого.