c# - 在 .NET 中将 Int 数组写入 Stream

标签 c# .net binary stream

将 int 数组 (Int32[]) 的二进制表示写入 Stream 的最佳方法是什么?

Stream.Write 只接受 byte[] 作为源,我想避免将数组转换/复制到 byte[] (数组,而是直接从“原始位置”流式传输)。

在更面向系统的语言(又名 C++)中,我会简单地将 int 数组转换为 byte* 但据我所知,这在 C# 中是不可能的(此外,转换byte*byte[] 两种方式都行不通)

谢谢

马丁

PS:实际上,我也想流式传输单个 int 值。使用 BinaryConverter.GetBytes() 是否会创建一个新的字节数组?在这种情况下,我将问题扩展到如何有效地流式传输单个 int 值 ...

最佳答案

最简单的选择是使用 BinaryWriter包装你的输出流,然后调用 Write(int)对于每个 int 值。如果这不适合您,您可以使用我的 MiscUtil 中的 EndianBinaryWriter图书馆。

我不知道有什么内置的东西可以更有效地做到这一点......我希望流中的缓冲能够在很大程度上处理它。

关于c# - 在 .NET 中将 Int 数组写入 Stream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3651992/

相关文章:

c# - 如何使方法的返回类型通用?

c# - .NET - 获取通用接口(interface)的所有实现?

c# - while 循环不会在 bool C# 上中断

.net - Lazy.Force() 和 Lazy.Value 有什么区别

python - 聚类二进制数据

ios - 卡在 "Developer Rejected"上,我无法上传新的二进制文件

c# - 具有多个接口(interface)的依赖注入(inject)

c# - 在构建服务器(CI 服务器)上构建或重建

c# - SplashScreen - 无法找到来自另一个项目的图像

vb.net - 在 VB.Net 中将位写入二进制文件