如何将文本文件分成块,以便每个块我可以继续使用单独的线程

时间:2017-08-25 20:09:30

标签: string vb.net multithreading file text-files

我想将一个文本文件分成5个总块。这样我就可以在一个块上使用一个线程,依此类推。我在vb.net中编写了一个代码,但是如果textfile中的总行数是5的倍数,那么只有我的代码覆盖了全文本行。请指导我。

 Private Function breakTextFile(ByVal path As String)
        Dim allLines As String() = File.ReadAllLines(path)
        Dim sizeOfFile As Integer = allLines.Length
        Dim break As Integer = 5, counter As Integer = 0, startline As Integer = 0
        Dim index As Integer = sizeOfFile / break
        Dim endline As Integer = 0
        endline = index
        Dim listOfStringArray As New List(Of ArrayList)
        Do While (counter <= break)
            Dim chunk As New ArrayList
            For i = startline To (endline - 1)
                Chunk.Add(allLines(i))
            Next
            listOfStringArray.Add(chunk)
            startline = endline
            endline = startline + index
            counter = counter + 1
        Loop
        Return listOfStringArray
    End Function

1 个答案:

答案 0 :(得分:0)

Imports MoreLinq

Private Function breakTextFile(ByVal path As String)
        Dim listOfStringArray As New List(Of IEnumerable(Of String))
        listOfStringArray = File.ReadLines(textFilePath).Batch(10000).ToList()
        Return listOfStringArray
    End Function