我想打开大文本文件(1MB 及以上)。我可以用我的代码打开 500KB-700KB 大小的文本文件。如何打开 1MB 及以上 文本文件。
我的文件打开密码:
FileOpenPicker openPicker = new FileOpenPicker()
{
ViewMode = PickerViewMode.Thumbnail,
SuggestedStartLocation = PickerLocationId.DocumentsLibrary
};
openPicker.FileTypeFilter.Add(".txt");
StorageFile storageFile = await openPicker.PickSingleFileAsync();
if (storageFile != null)
{
var stream = await storageFile.OpenAsync(FileAccessMode.ReadWrite);
using (StreamReader sReader = new StreamReader(stream.AsStream()))
{
TextBox.Text = sReader.ReadToEnd();
}
}
您可以使用RichTextBlock。
在我的测试中,打开一个2MB的文本文件需要3到4秒,并且窗口没有反应迟钝,实际效果比
TextBlock
和RichEditBox
好。
<RichTextBlock x:Name="richTextBlock" .../>
FileOpenPicker openPicker = new FileOpenPicker()
{
ViewMode = PickerViewMode.Thumbnail,
SuggestedStartLocation = PickerLocationId.DocumentsLibrary
};
openPicker.FileTypeFilter.Add(".txt");
StorageFile storageFile = await openPicker.PickSingleFileAsync();
if (storageFile != null)
{
var stream = await storageFile.OpenAsync(FileAccessMode.ReadWrite);
using (StreamReader sReader = new StreamReader(stream.AsStream()))
{
//get all data
var stringText = sReader.ReadToEnd();
Run run = new Run();
run.Text = stringText;
Paragraph paragraph = new Paragraph();
paragraph.Inlines.Add(run);
richTextBlock.Blocks.Add(paragraph);
}
}