【发布时间】:2013-08-09 10:15:24
【问题描述】:
您好,我已经阅读了这个问题:
Reading very large text files, should I be incorporating async?
我挖了网,尤其是堆栈溢出!
结果是 14 种方法可以做到这一点,但没有一个是不完整的!
在最后 2 天里,我正在研究这个并测试和基准测试了 14 种方法。
例如:
private void method()
{
FileStream FS = new FileStream(path, FileMode.Open, FileAccess.ReadWrite);
int FSBytes = (int) FS.Length;
int ChunkSize = 24;
byte[] B = new byte[ChunkSize];
int Pos;
for (Pos = 0; Pos < (FSBytes - ChunkSize); Pos += ChunkSize)
{
FS.Read(B,0 , ChunkSize);
string content = System.Text.Encoding.Default.GetString(B);
richTextBox1.Text=content=;
}
B = new byte[FSBytes - Pos];
FS.Read(B,0, FSBytes - Pos);
string content2 = System.Text.Encoding.Default.GetString(B);
richTextBox1Text=content2;
FS.Close();
FS.Dispose();
}
5mb的文本文件,时间太长,怎么办?
【问题讨论】:
-
please help me with example code to do this首先you展示,到目前为止你做了什么。 -
您希望用户滚动浏览 1Gb 的文本?我认为你需要重新考虑你的方法。
-
这太不切实际了。我会先使用 C 将文件分成多个块,然后允许用户使用按钮在这些块之间导航。
-
@MikeW 这种方法有什么问题。在过去,人们使用类似的技巧来编辑使用有限内存(例如 4K 或 64K)的大文件。
-
@FKunecke 我假设您可以证明
C更有效,而不是重复一些信念。(尤其是当文件 I/O 存在问题时)跨度>
标签: c# winforms textbox chunks