2017-08-04 2 views
-1

ich einen einzelnen int meiner Datei wie folgt schreiben,C# binärer Leser gibt falsche Nummer zurück?

using (System.IO.BinaryWriter BinaryWriter = new System.IO.BinaryWriter 
          (System.IO.File.Open(@"binary.bin", System.IO.FileMode.Create) 
    { 
     BinaryWriter.Write(1); 
    } 

Dann, wenn ich versuche, es zu lesen,

using (System.IO.BinaryReader BinaryReader = new System.IO.BinaryReader(System.IO.File.OpenRead(@"binary.bin"))) 
{ 
     ReturnedPropery = BinaryReader.ReadInt32(); 

     return ReturnedPropery; 
} 

instread von 1 bekommen, erhalte ich 1869762578. keine Ahnung, warum da i‘ m Lesen der einzigen 32-Bit-int Zeichen in der ganzen Datei

+0

Macht explizites Casting '1' einen Unterschied? 'BinaryWriter.Write ((int) 1)'? –

+1

Kann dieses Problem mit dem angegebenen Code nicht reproduzieren, es gibt '1' zurück. – Equalsk

+0

Immer noch das Gleiche. – Varscott11

Antwort

0

Es scheint zu sein, dass in meinem tatsächlichen Code, Strings in die Datei zuerst schreiben, bevor die Ganzzahlen das Problem verursacht. Keine Ahnung warum, aber die Ganzzahlen in die richtige Reihenfolge zu setzen, löste es.

+0

Werden die Strings korrekt zurückgelesen? – harold

+0

Nun, es löste das int-Problem, aber jetzt versucht, die Strings zu lesen, die nicht über das Ende des Streams hinaus gelesen werden können – Varscott11