我正在尝试获取一个文件并使用 StreamReader 迭代它,并将每一行加载到一个数组中。我知道该文件正确输入,并且它是按行输入的数据文本文件。
Dim req As WebRequest = WebRequest.Create("http://www.blahahahaha.com/data/myfile.csv")
Dim res As WebResponse = req.GetResponse()
Dim stream As Stream = res.GetResponseStream()
Dim lines2 As String()
Using r As StreamReader = New StreamReader(stream, Encoding.ASCII)
Dim line As String
line = r.ReadLine
Do While (Not line Is Nothing)
lines2(lineCount2) = r.ReadLine
lineCount2 += 1
Loop
End Using
但是结果数组是空的。我做错了什么以及如何解决它?
最佳答案
这一行:
Dim lines2 As String()
只是声明 lines2
将是一个字符串数组。数组本身未初始化:
Dim lines2(9) As String ' THIS one has elements
但是由于您可能不知道会有多少行,因此使用列表:
Dim Lines As New List(Of String)
Using r As StreamReader = New StreamReader(Stream, Encoding.ASCII)
Dim line As String
line = r.ReadLine
Do Until String.IsNullOrEmpty(line)
Lines.Add(line)
line = r.ReadLine
Loop
End Using
如果调用代码确实需要一个数组:
Return Lines.ToArray()
关于arrays - 使用streamreader将文件加载到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34778894/