Нужно ли мне «перематывать» поток перед чтением того, что в него записано? - PullRequest
0 голосов
/ 08 мая 2018

С этим кодом:

using (var stream = new MemoryStream())
{
    thumbnail.Save(stream); // you get the idea
    stream.Position = 0; // <- is this needed?
    WriteStreamToDisk(stream);
}

Если у меня есть метод записи в поток памяти, а затем я хочу записать этот поток на диск, нужно ли мне установить позицию в 0?

Или у потоков есть разные указатели чтения / записи?

1 Ответ

0 голосов
/ 08 мая 2018

Поток имеет только одну позицию, которая используется как для чтения, так и для записи. Итак, предполагая, что ...

  1. Thumbnail.Save(O); не перематывает поток после завершения записи в поток, а
  2. WriteStreamToDisk(O); не перематывает поток, пока он не начнет читать из потока,

тогда да, вам нужно будет перемотать поток самостоятельно.

...