用C#中的流读取大文本文件我有一个很好的任务,就是如何处理加载到应用程序脚本编辑器中的大型文件(如下所示)VBA为我们的内部产品快速宏)。大多数文件大约300-400 KB,这是很好的加载。但是,当它们超过100 MB时,进程将遇到困难(正如您所期望的)。所发生的情况是将文件读取并插入到RichTextBox中,然后导航-不要太担心这个部分。编写初始代码的开发人员只需使用StreamReader并执行[Reader].ReadToEnd()这可能需要很长时间才能完成。我的任务是分解这段代码,将其以块的形式读取到缓冲区中,并显示一个带有取消选项的进度条。一些假设:大多数文件将是30-40 MB。文件的内容是文本(不是二进制),有些是Unix格式,有些是DOS。一旦检索到内容,我们就知道使用了什么终止符。没有人担心,一旦它加载的时间,它呈现在丰富文本框。这只是文本的初始负载。下面是问题:我是否可以简单地使用StreamReader,然后检查Length属性(所以ProgressMax),然后为设置的缓冲区大小发出一个Read,然后在WITH循环中迭代同时在后台工作人员内部,所以它不会阻塞主UI线程?完成后,将字符串生成器返回到主线程。内容将转到StringBuilder。如果长度可用,可以用流的大小初始化StringBuilder吗?这些(在你的专业意见中)是好主意吗?过去,我在从流中读取内容时遇到了一些问题,因为它总是会错过最后几个字节或什么的,但如果是这样的话,我还会问另一个问题。
3 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
reader.ReadToEnd()
- 3 回答
- 0 关注
- 1615 浏览
添加回答
举报
0/150
提交
取消