如何对 BinaryWriter 使用 short[]?

Posted

技术标签:

【中文标题】如何对 BinaryWriter 使用 short[]?【英文标题】:How do I use a short[] to a BinaryWriter? 【发布时间】:2013-10-09 11:15:54 【问题描述】:
short[] sArray = new short[100];

sArray[100] 中有很多 16 位数据,所以我想用 BinaryWriter 类来写。

但是 BinaryWriter 只有 write(byte[]) 和 write(char[])。

如何将16位(short[])数据写入文件?

【问题讨论】:

【参考方案1】:

您需要使用BinaryWriter.Write(short) Method 单独写入每个值。

写作:

binaryWriter.Write(sArray.Length); // BinaryWriter.Write(Int32) overload
for (int i = 0; i < sArray.Length; i++)

    binaryWriter.Write(sArray[i]); // BinaryWriter.Write(Int16) overload

阅读:

short[] result = new short[binaryReader.ReadInt32()];
for (int i = 0; i < result.Length; i++)

    result[i] = binaryReader.ReadInt16();

【讨论】:

谢谢你的回答。但是写作: for(int i=0; i 编译错误:重载错误.. sArray[i] 数据短数据...

以上是关于如何对 BinaryWriter 使用 short[]?的主要内容,如果未能解决你的问题,请参考以下文章

原 BinaryWriter和BinaryReader(二进制文件的读写)

FileStream和StreamReader,StreamWrite,BinaryWriter

C#文件读取,FileSteam和BinaryWriter/Reader的使用

手记注意BinaryWriter写string的小坑——会在string前加上长度前缀length-prefixed

如何在汇编 risc v 中使用 short int 对堆栈的元素求和

C# 读写二进制文件