gpt4 book ai didi

c# - 在不移动位置的情况下将字节附加到 MemoryStream

转载 作者:太空宇宙 更新时间:2023-11-03 21:08:11 25 4
gpt4 key购买 nike

我正在尝试使用 Write() 将数据附加到 MemoryStream;方法但这也会移动位置。我知道我可以手动更改位置。但是有没有办法在不移动 Position 的情况下将数据附加到 MemoryStream

using (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
}

谢谢

最佳答案

不,MemoryStream 本身没有任何功能可以做到这一点。对于流,这也是逻辑行为。

但这也意味着如果您自己这样做并没有错。如果您打算以某种不错的方式重用此功能,我建议您为 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;
}
}

那是大脑编译的代码 :),所以对它持保留态度。之后,您可以像这样使用它:

stream.WriteAndResetPosition(data, 0, 20);

关于c# - 在不移动位置的情况下将字节附加到 MemoryStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39807083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com