Здравствуйте, Аноним, Вы писали:
А>Тоесть, StreamWriter умеет работать только с теми Encoding, которым не требуется очистка состояния.
Ну почему-же. У StreamWriter есть метод
Flush()
public override void Flush()
{
this.Flush(true, true);
}
обращающийся к внутреннему методу, который определён так
private void Flush(bool flushStream, bool flushEncoder)
Вот второй параметр и перенаправляется в нём энкодеру. То есть просто имеет место некоторое разделение интерфейса на собственно запись стрима и сброс внутренних буферов, которая сопровождается и зачисткой энкодера.