我在创建时遇到问题StreamWriter
在windows-8中,通常我只是创建一个实例,只是传递一个字符串作为参数,但在Windows 8中,我收到一个错误,表明它应该接收一个Stream,但我注意到Stream是一个抽象类,有人知道吗编写 xml 文件的代码将如何?顺便说一句,我使用 .xml 因为我想保存序列化对象,或者有人知道如何在 Windows 8 中将序列化对象保存到文件中吗?
有任何想法吗?
目前使用 Windows 8 Consumer Preview
Code:
StreamWriter sw = new StreamWriter("person.xml");
Error:
The best overloaded method match for 'System.IO.StreamWriter.StreamWriter(System.IO.Stream)' has some invalid arguments
你可以使用这样的东西来代替 StreamWriter:
StorageFolder folder = ApplicationData.Current.LocalFolder;
StorageFile file = await folder.CreateFileAsync();
using (IRandomAccessStream fileStream = await file.OpenAsync(FileAccessMode.ReadWrite))
{
using (IOutputStream outputStream = fileStream.GetOutputStreamAt(0))
{
using (DataWriter dataWriter = new DataWriter(outputStream))
{
//TODO: Replace "Bytes" with the type you want to write.
dataWriter.WriteBytes(bytes);
await dataWriter.StoreAsync();
dataWriter.DetachStream();
}
await outputStream.FlushAsync();
}
}
你可以看看字符串IO扩展 http://winrtxamltoolkit.codeplex.com/SourceControl/changeset/view/12598#235918类在WinRTXaml工具包 http://winrtxamltoolkit.codeplex.com/供示例使用的库。
EDIT*
虽然以上所有内容都应该有效 - 它们是在FileIO http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.fileio.aspx类在 WinRT 中可用,这简化了上述解决方案解决的大多数常见场景,因为您现在只需调用await FileIO.WriteTextAsync(file, contents) http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.fileio.writetextasync.aspx将文本写入文件,还有类似的方法来读取、写入或附加字符串、字节、字符串列表或IBuffers
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)