什么是将int数组(Int32 [])的二进制表示写入流(Stream)的最佳方法?
Stream.Write仅接受byte []作为源,我希望避免将数组转换/复制为byte [](数组),而是直接从“原始位置”进行流式传输。
在更系统导向的语言(即C ++)中,我只需将int数组强制转换为byte *,但据我所知,在C#中不可能这样做(而且,将byte *强制转换为byte []也行不通)
谢谢
马丁
PS:实际上,我还想流式传输单个int值。使用BinaryConverter.GetBytes()会创建一个新的字节数组吗?在这种情况下,我将我的问题扩展到如何有效地流式传输单个int值...
Stream.Write仅接受byte []作为源,我希望避免将数组转换/复制为byte [](数组),而是直接从“原始位置”进行流式传输。
在更系统导向的语言(即C ++)中,我只需将int数组强制转换为byte *,但据我所知,在C#中不可能这样做(而且,将byte *强制转换为byte []也行不通)
谢谢
马丁
PS:实际上,我还想流式传输单个int值。使用BinaryConverter.GetBytes()会创建一个新的字节数组吗?在这种情况下,我将我的问题扩展到如何有效地流式传输单个int值...
BinaryWriter
这样的流包装器在完成操作后往往会关闭流... 如果您想将带有其写入内容的流传递给其他处理程序来处理诸如写入等操作,则不太方便。 - NyergudsBinaryWriter
提供了保持流打开的选项,正是出于这个原因。由于问题没有表明有必要这样做,我没有在答案中包含详细信息。 - Jon Skeet