我想将一个文本文件分成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
答案 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