Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

c#

binaryfiles

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.

like image 911
SanVEE Avatar asked Aug 07 '14 11:08

SanVEE


2 Answers

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

float value = binaryReader.ReadSingle();
like image 155
DarkWanderer Avatar answered Sep 21 '22 02:09

DarkWanderer


You need to read a Single not an Int. If you need an int you can do a cast (int).

MSDN Example

binaryReader.ReadSingle();
like image 27
Marcos Lora Avatar answered Sep 17 '22 02:09

Marcos Lora