1

FileStream只写入原始字节。当我使用SoapFormatter进行序列化时,如果我打开文件,我可以看到那里有类似 XML 的文本。我认为您必须在将每个字符传递给FileStream之前对其进行编码,并且写入 FileStream 的数据不会作为文本传递。

4

1 回答 1

1

不知道能不能解释清楚。但是让我试试。

一个类,获取一个文件流并输出文本文件,可以以各种方式实现......

例如;

public class SomeClass
{
    FileStream _file = null;

    public SomeClass(FileStream f)
    {
        _file = f;
    }

    void WriteString(string s)
    {
        byte[] buf = Encoding.UTF8.GetBytes(s);
        _file.Write(buf, 0, buf.Length);
    }
}

或者

public class SomeClass
{
    TextWriter _Writer = null;
    public SomeClass(FileStream f) : this(new StreamWriter(f,Encoding.UTF8))
    {
    }

    public SomeClass(TextWriter tw)
    {
        _Writer = tw;
    }

    void WriteString(string s)
    {
        _Writer.Write(s);
    }
}
于 2013-05-30T17:13:07.250 回答