首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

怎么快速读取文本文件的所有行

2011-12-21 
如何快速读取文本文件的所有行我要将一个文本文件大约15MB行数在100000行左右的每一行读取出来。并且放入的

如何快速读取文本文件的所有行
我要将一个文本文件大约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)

异步读...缓存...

热点排行