How to find out if the memory stream is full properly

In the code below, it tries to fill an array of bytes with messageplain text before the buffer is full.

byte[] message = new byte[1024];

using (MemoryStream memoryStream = new MemoryStream(message, true))
    {
        using (StreamWriter streamWriter = new StreamWriter(memoryStream, Encoding.ASCII))
        {
            while (???)
                streamWriter.WriteLine("Hello World!");
        }
    }

What should be in the instructions while(???)?

+3
source share
1 answer
byte[] message = new byte[1024];
using (MemoryStream memoryStream = new MemoryStream(message, true))
{
    using (StreamWriter streamWriter = new StreamWriter(memoryStream, Encoding.ASCII))
    {
        var lineToAdd = "Hello World!";
        while (memoryStream.Length - memoryStream.Position > lineToAdd.Length)
        {
            streamWriter.WriteLine(lineToAdd);
            streamWriter.Flush();
        }
    }
}

OR

using (MemoryStream memoryStream = new MemoryStream(message, true))
using (StreamWriter streamWriter = new StreamWriter(memoryStream, Encoding.ASCII))
{
    streamWriter.AutoFlush = true;
    var lineToAdd = "Hello World!";
    while (memoryStream.Length - memoryStream.Position > lineToAdd.Length)
        streamWriter.WriteLine(lineToAdd);
}
+4
source

All Articles