コード例 #1
0
        public void VirtualWriter()
        {
            using (var stream = new MemoryStream(new byte[1024]))
                using (var writer = new EndianWriter(stream, ByteOrder.LittleEndian))
                {
                    writer.Seek(50, SeekOrigin.Begin);
                    Assert.AreEqual(50, stream.Position);

                    writer.Seek(50, SeekOrigin.Current);
                    Assert.AreEqual(100, stream.Position);

                    writer.Seek(-50, SeekOrigin.End);
                    Assert.AreEqual(974, stream.Position);

                    using (var vwriter = writer.CreateVirtualWriter())
                    {
                        vwriter.Seek(0, SeekOrigin.Begin);
                        Assert.AreEqual(974, stream.Position);

                        vwriter.Write(new byte[20]);
                        Assert.AreEqual(994, stream.Position);
                    }

                    using (var vwriter = writer.CreateVirtualWriter(500))
                    {
                        vwriter.Seek(100, SeekOrigin.Begin);
                        Assert.AreEqual(600, stream.Position);
                    }
                }
        }