如何使用c#从二进制文件中读取浮点值?

时间:2014-08-07 11:53:12

标签: c# binaryfiles

我试图从float文件中读取binary个值,

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(因为返回类型为整数),请指导我在这里做错了什么。

非常感谢提前。

3 个答案:

答案 0 :(得分:17)

你查过文件了吗? BinaryReader中有一个ReadSingle方法。

float value = binaryReader.ReadSingle();

答案 1 :(得分:2)

您需要阅读Single而不是Int。如果你需要一个int,你可以做一个强制转换(int)。

MSDN Example

binaryReader.ReadSingle();

答案 2 :(得分:0)

您正在使用read而不是ReadSingle。我认为读入int会导致数据转换。

请参阅以下有关ReadReadSingle

的文档文章