如何将二进制文件反序列化为string
?
这是我到目前为止的示例代码:
public function serialize()
{
FileStream fs = new FileStream("test.txt", FileMode.Append);
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(fs, textBox1.Text);
fs.Flush();
fs.Close();
}
public function deserialize()
{
FileStream fs = File.Open(openFileDialog1.FileName, FileMode.Open);
BinaryFormatter formatter = new BinaryFormatter();
richTextBox1.Text = formatter.Deserialize(mystream) as string;
fs.Flush();
fs.Close();
}
当我开始调试应用程序时,它只显示流的第一个字符串。流的其余部分没有显示出来。我该如何解决这个问题?
答案 0 :(得分:5)
只需使用
System.IO.File.WriteAllText(fileName, textBox1.Text);
和
textBox1.Text = System.IO.File.ReadAllText(fileName);
答案 1 :(得分:2)
执行此操作的正确方法是将要序列化的所有值放入可序列化结构中,然后序列化该结构。另一方面,您反序列化该结构,然后将值放在需要的位置。
请注意,二进制序列化器生成二进制,而不是文本输出。如果您需要人类可读的序列化数据,则可以使用XmlSerializer。
答案 2 :(得分:0)
二进制序列化序列化对象图;它不只是写字符串 组合对象图是没有意义的。
您应该使用File
类直接读取和写入文件。