Windows Phone只保存字符串的一个字符
本文关键字:一个 字符 Phone 保存 字符串 Windows | 更新日期: 2023-09-27 18:28:16
我正在尝试使用以下代码将字符串文本写入Windows Phone 8.1中的文件:
public async Task WriteDataToFileAsync(String fileName, String content)
{
Byte[] data = Encoding.Unicode.GetBytes(content);
var folder = ApplicationData.Current.LocalFolder;
var file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
using (var s = await file.OpenStreamForWriteAsync())
{
await s.WriteAsync(data, 0, data.Length);
}
}
然而,它只是写我让它写的任何文本的第一个字符。我做错了什么!?
编辑:以下是我的阅读方式:
public async Task<String> ReadFileContentsAsync(String fileName)
{
var folder = ApplicationData.Current.LocalFolder;
try
{
var file = await folder.OpenStreamForReadAsync(fileName);
using (var streamReader = new StreamReader(file))
{
return streamReader.ReadToEnd();
}
}
catch (Exception)
{
return String.Empty;
}
}
这可能是一个编码问题。读取文件时,请尝试指定与写入文件时相同的编码:
using (var streamReader = new StreamReader(file, Encoding.Unicode))
解释:文件以Unicode编写,但以UTF-8读取(因为没有字节顺序标记)。额外的NUL字符会导致文本框截断第一个字符后的文本。