How to read float values from binary file using c#?

SanVEE picture SanVEE · Aug 7, 2014 · Viewed 8.9k times · Source

I'm trying to read float values from a binary file,

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
        }
    }

I know that I'm missing something at Read section, when I read those values I get val_1 as 25 & val_2 as 4 instead of 10(as the return type is integer), please guide me what am I doing wrong here.

Many Thanks in advance.

Answer

DarkWanderer picture DarkWanderer · Aug 7, 2014

Have you checked the documentation? There is a ReadSingle method in BinaryReader for that.

float value = binaryReader.ReadSingle();