我需要一个大字符串(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以上),所以我想知道导致错误的原因以及是否有任何方法可以覆盖它。