How can I write MemoryStream to byte[]

Polaris picture Polaris · Jan 21, 2013 · Viewed 94.9k times · Source

Possible Duplicate:
Creating a byte array from a stream

I'm trying to create text file in memory and write it byte[]. How can I do this?

public byte[] GetBytes()
{
    MemoryStream fs = new MemoryStream();
    TextWriter tx = new StreamWriter(fs);

    tx.WriteLine("1111");
    tx.WriteLine("2222");
    tx.WriteLine("3333");

    tx.Flush();
    fs.Flush();

    byte[] bytes = new byte[fs.Length];
    fs.Read(bytes,0,fs.Length);

    return bytes;
}

But it does not work because of data length

Answer

Gabe picture Gabe · Jan 21, 2013

How about:

byte[] bytes = fs.ToArray();