如何快速读取文本文件的所有行
我要将一个文本文件大约15MB
行数在100000行左右的每一行读取出来。
并且放入的一个字符串数组中待处理。
经过计算时间发现我的程序的大部分时间花在了下面这个--函数 读取文本文件的时候。
之后的处理100000行数据和写入n*100000行数据(n> 10)到文件都非常快(我处理中的数据和处理结果都是放入到System.Text.StringBuilder里面,这个非常快)
各位老大有什么好的建议 可以使我的程式快速读到每一行呢
' 下面的程式里面的 Application.DoEvents()去掉是可以稍稍提升一些速度,但是还是太慢了, 我写Application.DoEvents()让程式可以和用户交互,我用了一个timer提示正在读取文件中....
public strFileLineContent() as string
Function OpenAndReadLine(ByVal FilterString As String) As Integer
Dim fileDialog As New OpenFileDialog
Dim i As Integer
fileDialog.Filter = FilterString
fileDialog.ShowDialog()
strFileName = fileDialog.FileName
If strFileName <> " " Then
Dim objReaderAnsi As StreamReader = New StreamReader(strFileName, Encoding.GetEncoding(0), False)
i = 1
Do While Not objReaderAnsi.EndOfStream
strFileContent = objReaderAnsi.ReadLine
ReDim Preserve strFileLineContent(i)
strFileLineContent(i) = strFileContent
Application.DoEvents()
i = i + 1
Loop
objReaderAnsi.Close()
Return i
Else
Return 0
End If
End Function
Function Readline()
[解决办法]
用File.ReadAllLine or File.ReadAllText 不知道内部有优化没 估计没有 15M太大 没有其它办法的
[解决办法]
public FileStream (string path,FileMode mode,FileAccess access,FileShare share,int bufferSize,bool useAsync)
异步读...缓存...