C# 将浮点数数组写入二进制文件,用winhex打开后,发现数据不对

number007cool 2020-01-13 04:13:25
   private void writeConfigBinFileTest(string binName)
{
FileStream fs = new FileStream(binName, FileMode.OpenOrCreate);
BinaryWriter bw = new BinaryWriter(fs);

float[] arrayK = new float[192];
float[] arrayB = new float[192];

for (int k = 0; k < 192; k++)
{
arrayK[k] = 0.00006789f;
arrayB[k] = 1;
}

for (int k = 0; k < 192; k++)
{
byte[] byArray = BitConverter.GetBytes(arrayK[k]);
bw.Write(byArray, 0, 4);
}

for (int k = 0; k < 192; k++)
{
byte[] byArray = BitConverter.GetBytes(arrayB[k]);
bw.Write(byArray, 0, 4);
}


bw.Close();
fs.Close();

}


照理说bin文件 依次排布 192 个arrayK, 然后依次排布192个arrayb,
...全文
327 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
number007cool 2020-01-14
  • 打赏
  • 举报
回复
引用 3 楼 github_36000833 的回复:
BinaryWriter可以不用预先把float转成byte[]
for (int k = 0; k < 192; k++)
{
    bw.Write(arrayK[k]);
}
学习了 多谢。 如果要进行大小端转换的话 还是要先转换成字节数组的吧
github_36000833 2020-01-14
  • 打赏
  • 举报
回复
BinaryWriter可以不用预先把float转成byte[]
for (int k = 0; k < 192; k++)
{
    bw.Write(arrayK[k]);
}
number007cool 2020-01-13
  • 打赏
  • 举报
回复
原因找到 FileMode.OpenOrCreate 如果之前文件存在是不会再写的。 FileMode.Create 即可

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧