Files and Streams
Memory Stream
Write bytes to memory and read back stream facts.
streams
A `MemoryStream` stores bytes in memory instead of on disk.
Memory Stream
MemoryStreamExample.cs
Replay: real traced execution (multi-file project)
using System;
using System.IO;
class Program
{
static void Main()
{
int firstByte = 65;
using MemoryStream stream = new MemoryStream();
stream.WriteByte((byte)firstByte);
stream.WriteByte(90);
long length = stream.Length;
int first = (int)stream.ToArray()[0];
Console.WriteLine($"length={length}");
Console.WriteLine($"first={first}");
}
}
using System;
using System.IO;
class Program
{
static void Main()
{
int firstByte = 66;
using MemoryStream stream = new MemoryStream();
stream.WriteByte((byte)firstByte);
stream.WriteByte(90);
long length = stream.Length;
int first = (int)stream.ToArray()[0];
Console.WriteLine($"length={length}");
Console.WriteLine($"first={first}");
}
}
using System;
using System.IO;
class Program
{
static void Main()
{
int firstByte = 67;
using MemoryStream stream = new MemoryStream();
stream.WriteByte((byte)firstByte);
stream.WriteByte(90);
long length = stream.Length;
int first = (int)stream.ToArray()[0];
Console.WriteLine($"length={length}");
Console.WriteLine($"first={first}");
}
}
firstByte ← 65, length ← 2, first ← 65
5{6 static void Main()7 {8 int firstByte→ 65 = 65; //@firstByte=66, 67910 using MemoryStream stream = new MemoryStream();11 stream.WriteByte((byte)firstByte);12 stream.WriteByte(90);1314 long length→ 2 = stream.Length2;15 int first→ 65 = (int)stream.ToArray()[0];1617 Console.WriteLine($"length={length2}");18 Console.WriteLine($"first={first65}");19 }outputlength=2 first=65
firstByte ← 66, length ← 2, first ← 66
5{6 static void Main()7 {8 int firstByte→ 66 = 66;910 using MemoryStream stream = new MemoryStream();11 stream.WriteByte((byte)firstByte);12 stream.WriteByte(90);1314 long length→ 2 = stream.Length2;15 int first→ 66 = (int)stream.ToArray()[0];1617 Console.WriteLine($"length={length2}");18 Console.WriteLine($"first={first66}");19 }outputlength=2 first=66
firstByte ← 67, length ← 2, first ← 67
5{6 static void Main()7 {8 int firstByte→ 67 = 67;910 using MemoryStream stream = new MemoryStream();11 stream.WriteByte((byte)firstByte);12 stream.WriteByte(90);1314 long length→ 2 = stream.Length2;15 int first→ 67 = (int)stream.ToArray()[0];1617 Console.WriteLine($"length={length2}");18 Console.WriteLine($"first={first67}");19 }outputlength=2 first=67