关于将文件加载到内存的简单说明

时间:2015-06-17 19:35:47

标签: vb.net visual-studio-2010 memory-management

“加载到内存中”是什么意思?

我在网上观看了一些他们在谈论缩短处理报告时间的视频,并且他们经常说“你不想将大文件加载到内存中,而是逐行读取。”

我是否可以举例说明将文件(简单来说是文本文件)加载到内存中的示例,以及处理文件而不将其加载到内存中的示例。

除了缩短处理时间外,他们谈到的这些好处究竟是什么?

1 个答案:

答案 0 :(得分:1)

当他们提到“读入内存”时,它只是一种说法,你正在阅读它并将其存储在变量中(将其存储在内存中)。

使用ReadAllLines将整个文件读入内存:

Dim readText() As String = File.ReadAllLines(path)

请参阅File.ReadAllLines Method (String)

使用StreamReader逐行读取文件:

Dim sr As StreamReader = New StreamReader(path)

Do While sr.Peek() >= 0
    Console.WriteLine(sr.ReadLine())
Loop
sr.Close()

请参阅StreamReader.ReadLine Method

正如上面提到的那样,最糟糕的性能影响是,如果你试图读取太大的文件,它就会崩溃。你是否可以通过逐行读取在这里或那里节省一两毫秒,这取决于许多因素(文件大小,磁盘延迟等)。一般来说,你不希望使用100 MB的记忆如果你不需要,那么大部分时间它都不是关于性能的,而是不会不必要地占用系统资源。

如果您正在处理每一行,如果您逐行阅读,通常也更容易编码。