У меня есть куча данных в MemoryStream
, и я хочу написать все это до BinaryWriter
.Скопировать данные из MemoryStream непосредственно в BinaryWriter.BaseStream?
Lucky для меня все потоки теперь имеют Stream.CopyTo(Stream)
method, и я могу получить целевой поток с BinaryWriter.BaseStream
property.
public void WriteTo(BinaryWriter writer)
{
this.memoryStream.CopyTo(writer.BaseStream);
}
Могу ли я благополучно обойти писателя, как это и скопировать его непосредственно в основной поток, или это будет запутались буфера, положение писателя, или что-то еще? Или, как бы вы предложили скопировать Stream
в BinaryWriter
?
Согласно http://msdn.microsoft.com/en-us/library/dd782932.aspx, «Копирование начинается с текущей позиции в течении поток." – Gray
@Gray Это _reading position_ является потоком _source_ прямо? Думаю, это не имеет никакого отношения к позиции BinaryWriter. – Virtlink
Я просто размышляю здесь, не дай мне привести тебя. Я наткнулся на это: http://stackoverflow.com/questions/16341653/filestream-copytonet-connectstream-what-happens-intern, который, кажется, объясняет его реальную реализацию. – Gray