如何使用c#从二进制文件中读取浮点值
本文关键字:读取 二进制文件 何使用 | 更新日期: 2023-09-27 18:16:51
我正试图从binary
文件中读取float
值,
public static void tmpTest ( )
{
string fileName = @"c:'debug'tmp_1.bin";
/* Write */
using ( BinaryWriter bw = new BinaryWriter ( File.Open( fileName, FileMode.Create ) ))
{
bw.Write ( 10.001f );
bw.Write ( 10.002f );
}
/* Read */
using ( BinaryReader br = new BinaryReader ( File.Open ( fileName, FileMode.Open ) ) )
{
int val_1 = br.Read (); // Output : 25
int val_2 = br.Read (); // Output : 4
}
}
我知道我在Read
部分缺少一些东西,当我读取这些值时,我得到val_1
为 25
&val_2作为 4
而不是10(因为返回类型是整数),请指导我在这里做错了什么。
你看过文档了吗?在BinaryReader中有一个ReadSingle方法。
float value = binaryReader.ReadSingle();
你需要读的是Single而不是Int。如果需要int类型,可以进行强制类型转换(int)。
MSDN例子
binaryReader.ReadSingle();
您正在使用read,而不是ReadSingle。我认为读强制转换成int类型会导致数据发生某种转换。
请参阅以下关于Read和ReadSingle的文档文章