Java 的 ByteBuffer 在 C# 中最接近的对应物?

Posted

技术标签:

【中文标题】Java 的 ByteBuffer 在 C# 中最接近的对应物?【英文标题】:Java's ByteBuffer nearest counterpart in C#? 【发布时间】:2014-02-23 19:12:54 【问题描述】:

目前正在寻找一个 Java 和 C# 应用程序的接口。在 Java 中,我可以使用getShort()getFloat() 等从缓冲区中获取各种不同的数据类型。

在 C# 中,我使用 MemoryStream,但只有一个 get() 函数。有人知道可以模仿此功能的数据类型甚至类吗?

【问题讨论】:

【参考方案1】:

您可以将您的 MemoryStream 包装在 BinaryReader 中:

using(var reader = new BinaryReader(yourStream)) 
   int someInt = reader.ReadInt32();  

BinaryReader 可以在 System.IO 命名空间中找到。

请参阅MSDN,了解您可以使用哪些方法的详细信息。请记住,这些方法遵循 Read + CLR 类型的模式。所以ReadInt32() 是int,ReadUInt16() 是简写等等。

【讨论】:

【参考方案2】:

您正在寻找可以从任何流中读取的BinaryReader 类。

您也可以使用BitConverter,它直接对字节数组进行操作。

【讨论】:

以上是关于Java 的 ByteBuffer 在 C# 中最接近的对应物?的主要内容,如果未能解决你的问题,请参考以下文章

什么是 C# 中 Java 的 ByteBuffer.wrap 的等价物?

Java--Stream,NIO ByteBuffer,NIO MappedByteBuffer性能对比

基于类似于来自java的ByteBuffer的字节集合

Java 的 SocketChannel.read(ByteBuffer)

图解java中的bytebuffer

Java - ByteBuffer.remaining() 问题