从.txt文件中打开9000万行文本

时间:2013-10-24 06:40:04

标签: vb.net text out-of-memory

我在从.txt文件中打开9000万行文本并将其添加到数组中时遇到问题,它给了我一个错误并阻止它打开。这是我的代码:

Dim Contents As String()
Contents = File.ReadAllLines(RichTextBox4.Text)

我已经尝试了100万行文本并且它可以工作,但是当我尝试超过9000万行时,它现在给了我一个错误。这有什么替代方案吗?提前谢谢。

其他信息:

这些9000万行充当过滤器,如果他们输入的单词存在于9000万行中的一行中,则会阻止用户输入。这是我的主要目标。

2 个答案:

答案 0 :(得分:4)

我建议每次使用一个蒸汽读取器并读取一行,然后处理它,然后在“扔掉”旧行时读取下一行。

这样你就不需要将每一行读入内存而只需读取工作线。

答案 1 :(得分:1)

您可以读取块中的大文件并将每个块保存在磁盘上供以后参考。

您可以获取基础文件流,然后执行类似的操作:

Dim stream = reader.BaseStream

然后使用流搜索方法移动文件指针

stream.Seek(CHUNK_SIZE, SeekOrigin.[Start])