Я использую методы для сериализации и де-сериализации объектов в двоичный файл, который я нашел описанным и обсуждаемым здесь, в stackoverflow. среди прочего, в следующей ссылке: https://stackoverflow.com/questions/21080839/pulling-objects-from-binary-file-and-putting-in-listt Процесс сериализации работает нормально, я вижу, что файл растет, когда к нему добавляются объекты, а при чтении с десериализацией проблема заключается в том, что я получаю только часть списка, написанную в первой записи, файл. Полученные данные кажутся правильными, но я не могу читать за пределами первого числа объектов, которые были в списке в первой операции «запись». это похоже на то, что позиция файла всегда равна нулю.Де-сериализация объектов из двоичного файла
Может ли операция чтения быть закольцована или управляться каким-либо образом, чтобы заставить ее прочитать весь файл?
Цените свои комментарии по этому
Тор
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;
}
}
Вы должны, вероятно, разместить свой собственный текущий код в вопросе – infixed