我有一个文件,它有一个字节数组的unicode,它是一个序列化的对象。 我尝试使用下面的代码阅读该文件。
string unicodeString = File.ReadAllText(filename);
当我试图获取Byte数组时,这可以正常工作,以进行反序列化。
我正在寻找的是,只读取文件的特定行并尝试将该unicode字符串转换为字节。为此,我试过了。
string unicodeString = string.join("", File.ReadAllLines(filename).Take(4).ToArray());
这里我使用4因为,该文件有4行unicode字符串
byte[] _bytes = System.Text.Encoding.Unicode.GetBytes(unicodeString );
var bformatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
using (var ms = new MemoryStream(_bytes))
{
myobject data = (myobject)bformatter.Deserialize(ms);
}
我能够获取字符串但无法反序列化。我的目标是在文件中我将使用许多这样的对象,并且我只检索那些行并将其反序列化为对象。
它抛出以下异常。
{" Binary stream' 0'不包含有效的BinaryHeader。可能的原因是序列化和反序列化之间的流或对象版本更改无效。"}