我尝试使用此方法将文件内容添加到我的RichEditBox:
myRichEditBox.Document.LoadFromStream(Windows.UI.Text.TextSetOptions.None, streamFile);
这就是我填充streamFile变量的方式:
public static async void openFileAsync(string pathFolder, string file)
{
Windows.Storage.StorageFolder folder = await Windows.Storage.StorageFolder.GetFolderFromPathAsync(pathFolder);
System.Diagnostics.Debug.WriteLine("folder : " + folder.Path);
Windows.Storage.StorageFile fileOpen = await folder.GetFileAsync(file);
System.Diagnostics.Debug.WriteLine("file : " + fileOpen.Path);
Windows.Storage.Streams.IRandomAccessStream stream = await fileOpen.OpenAsync(Windows.Storage.FileAccessMode.Read);
streamFile = stream;
}
我没有异常,但richBoxEdit文本不可读(字符不可读)。 我想读取txt文件。
提前感谢您的帮助。
答案 0 :(得分:1)
如果要使用Stream
来读取文件的内容,可以使用以下方法。这将返回文件的内容Text
。
internal async Task<string> UsingStream(StorageFile sampleFile)
{
IRandomAccessStream stream = await sampleFile.OpenAsync(FileAccessMode.Read);
ulong size = stream.Size;
string text = string.Empty;
using (var inputStream = stream.GetInputStreamAt(0))
{
using (var dataReader = new DataReader(inputStream))
{
uint numBytesLoaded = await dataReader.LoadAsync((uint)size);
text = dataReader.ReadString(numBytesLoaded);
}
}
return text;
}
请参阅Official Microsoft Documentation参考
但是,如果您想直接加载文本而不是流,请使用下方。
string fileText = await FileIO.ReadTextAsync(sampleFile);
然后将数据分配到RichEditBox
,如下所示。
MyRichEditBox.Document.SetText(Windows.UI.Text.TextSetOptions.None, await UsingStream(sampleFile));