Ich verwende Methoden zum Serialisieren und Deserialisieren von Objekten in Binärdateien, die ich hier im Stackoverflow beschrieben und beschrieben habe. unter anderem im folgenden Link: https://stackoverflow.com/questions/21080839/pulling-objects-from-binary-file-and-putting-in-listt Die Serialisierung funktioniert einwandfrei, ich sehe die Datei wächst, wenn Objekte an sie angehängt werden und beim Lesen mit Deserialisierung ist das Problem, dass ich nur den Teil der Liste, die in der ersten Schreibphase geschrieben wurde, bekomme Datei. Die abgerufenen Daten scheinen korrekt zu sein, aber ich kann nicht über die erste Anzahl von Objekten hinauslesen, die in der Liste in der ersten "Schreib" -Operation waren. Es ist, als ob die Dateiposition immer auf Null gesetzt ist.De-serialisieren von Objekten aus einer Binärdatei
Kann die Leseoperation in irgendeiner Weise geloopt oder gesteuert werden, um sie zum Lesen der gesamten Datei zu zwingen?
Schätzen Sie Ihre Kommentare zu diesem
Thor
class singleBlob
{
public Bitmap bmpIndividualFish;
public Int64 idNumber;
public float area;
public float areaRatio;
}
class writeToFile
{
public void write(List<singleBlob> listOfBlobs)
{
string dir = @"D:\temp";
string serFileName = Path.Combine(dir, "fIndividualFish.bin");
//serialize
using (Stream streamw = File.Open(serFileName, FileMode.Append))
{
var bformatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
bformatter.Serialize(streamw, listOfBlobs);
//streamw.Close();
}
}
public List<singleBlob> read()
{
string dir = @"D:\temp";
string serFileName = Path.Combine(dir, "fIndividualFish.bin");
//deserialize
using (Stream stream = File.Open(serFileName, FileMode.Open,FileAccess.Read))
{
var bformatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
List<singleBlob> listOfBlobs = (List<singleBlob>)bformatter.Deserialize(stream);
//stream.Close();
return listOfBlobs;
}
}
Sie sollten wahrscheinlich Ihren eigenen aktuellen Code in die Frage einfügen – infixed