最大字符串大小vb.net

时间:2016-01-29 17:41:58

标签: vb.net string out-of-memory filestream

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

eLineID = sao.PutText(777, eLines)

我无法在没有内存耗尽的情况下构建字符串,因为我收到此错误:

  

未处理的类型' System.OutOfMemoryException'发生了   在mscorlib.dll中

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

构建字符串
If (System.IO.File.Exists(filename)) Then
            Dim sB As StringBuilder = New StringBuilder()
            Dim test As String
            Dim allLines As String() = System.IO.File.ReadAllLines(filename)
            'Seperate into blocks
            For i = 0 To allLines.Count() Step 1
                test = allLines(i)
                If (test.IndexOf("\t") > -1) Then
                    test.Replace("\t", "")
                End If
                sB.AppendLine(test)
            Next
        Else
            Console.WriteLine("File object could not find specified file")
        End If

另一次尝试将System.IO.StreamReader对象的整个文件一次性读取到一个字符串:

eLines = read.ReadToEnd()

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

我知道我有足够的内存来执行此操作(32 GB并且运行它永远不会将当前内存使用量提高1 GB以上),所以我想知道导致错误的原因以及是否有任何方法可以覆盖它。

0 个答案:

没有答案