我正在尝试使用Write()将数据附加到MemoryStream;方法 但这也改变了位置。我知道我可以手动更改位置。 但是有没有办法在不移动位置
的情况下将数据附加到MemoryStreamusing (MemoryStream stream = new MemoryStream())
using (BinaryReader reader = new BinaryReader(stream))
{
byte[] data = new byte[20];
Random rand = new Random();
rand.NextBytes(data);
stream.Write(data, 0, 20);
Console.WriteLine(reader.ReadInt32());//Pointer = 20 here
}
由于
答案 0 :(得分:4)
不,MemoryStream没有任何功能可以自行完成。对于流,这也是逻辑行为。
但这也意味着如果你自己这样做,没有错。如果您打算采用某种方式重用此功能,我建议您为Include(g=>g.Transactions)
编写一个简单的扩展方法:
MemoryStream
这是大脑编译的代码:),所以请耐心等待。之后,你可以使用它:
public static class Extensions
{
public static void WriteAndResetPosition(this MemoryStream stream, byte[] data, int offset, int count)
{
stream.Write(data, offset, count);
stream.Position -= count;
}
}