FileStream 仅写入原始字节。当我使用 SoapFormatter 进行序列化时,如果我打开文件,我可以看到XML就像文本一样。我认为你必须在将每个字符传递给 FileStream 之前对其进行编码,并且写入FileStream的数据不会作为文本传递。
答案 0 :(得分: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);
}
}