0

我尝试使用此方法向我的 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文件。

预先感谢您的帮助。

4

1 回答 1

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;
}

请参阅Microsoft 官方文档以供参考

但是,如果您想直接加载文本而不是流,请使用下方。

string fileText = await FileIO.ReadTextAsync(sampleFile);

然后将数据分配给RichEditBox如下所示。

MyRichEditBox.Document.SetText(Windows.UI.Text.TextSetOptions.None, await UsingStream(sampleFile));
于 2017-05-19T16:50:49.590 回答