将二进制文件反序列化为字符串

时间:2011-05-22 22:35:22

标签: c# serialization

如何将二进制文件反序列化为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();
}

当我开始调试应用程序时,它只显示流的第一个字符串。流的其余部分没有显示出来。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:5)

只需使用

System.IO.File.WriteAllText(fileName, textBox1.Text);

textBox1.Text = System.IO.File.ReadAllText(fileName);

答案 1 :(得分:2)

执行此操作的正确方法是将要序列化的所有值放入可序列化结构中,然后序列化该结构。另一方面,您反序列化该结构,然后将值放在需要的位置。

请注意,二进制序列化器生成二进制,而不是文本输出。如果您需要人类可读的序列化数据,则可以使用XmlSerializer。

答案 2 :(得分:0)

二进制序列化序列化对象图;它不只是写字符串 组合对象图是没有意义的。

您应该使用File类直接读取和写入文件。