2013-05-30 4 views
1

FileStream только пишет raw байтов. Когда я сериализую, используя SoapFormatter, если я открою файл, я вижу, что там есть XML, как текст. Я думал, вам нужно было закодировать каждого персонажа до того, как передать его в FileStream, и данные, записанные в FileStream, не были переданы как текст.Как SoapFormatter и FileStream работают вместе/

ответ

1

Я не знаю, могу ли я объяснить это или нет. Но позвольте мне попробовать.

класс, принимая FileStream и вывода текстового файла, можно реализовать различными способами ...

, например;

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); 
    } 
} 
Смежные вопросы