最大字符串大小vb.net

最大字符串大小vb.net,vb.net,string,out-of-memory,filestream,Vb.net,String,Out Of Memory,Filestream,我需要一个大字符串(eLines)来传递到我正在使用的类型库的方法中 eLineID = sao.PutText(777, eLines) 我无法在内存不足的情况下生成字符串,因为我遇到以下错误: 发生“System.OutOfMemoryException”类型的未处理异常 在mscorlib.dll中 我正在尝试将500+mb文件的内容存储到字符串中。我尝试了多种方法来做到这一点。这会将所有行读入单个字符串,然后尝试使用对象构建字符串 另一次尝试将包含对象的整个文件一次性读取为一个字符串:

我需要一个大字符串(eLines)来传递到我正在使用的类型库的方法中

eLineID = sao.PutText(777, eLines)
我无法在内存不足的情况下生成字符串,因为我遇到以下错误:

发生“System.OutOfMemoryException”类型的未处理异常 在mscorlib.dll中

我正在尝试将500+mb文件的内容存储到字符串中。我尝试了多种方法来做到这一点。这会将所有行读入单个字符串,然后尝试使用对象构建字符串

另一次尝试将包含对象的整个文件一次性读取为一个字符串:

eLines = read.ReadToEnd()
使用StreamReader逐行读取。ReadLine()速度太慢,无法判断是否最终会耗尽内存


我知道我有足够的内存来做这件事(32 GB,运行它不会使当前的内存使用增加超过1 GB),所以我想知道是什么导致了错误,以及是否有任何方法可以覆盖它

实际上,您要将这个巨大的文件加载到内存中两次:一次加载到
allLines()
中,然后逐行加载到stringbuilder中。Stringbuilder将每个字符使用2个字节,因此目前的目标是1GB。系统内存无关紧要,从:
内存中字符串对象的最大大小是2GB,或大约10亿个字符。
。是你的图书馆吗?那就是了。我不知道字符串对象有那个限制。我也需要阅读比这更大的文件。我想这个软件从来没有被用来容纳超过一定数量的甲板。字符串是该方法所需要的,所以我假设我被锁定在这个限制。我会考虑这一点。谢谢你的快速回复!这是调用它的唯一方法吗?使用一个巨大的字符串数组?可以分块执行吗?调用它的唯一方法是传入一个字符串,但可以通过一次发送源文件的块来调用它吗?
eLines = read.ReadToEnd()