arrays - 使用streamreader将文件加载到数组中

标签 arrays vb.net streamreader

我正在尝试获取一个文件并使用 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/

相关文章:

c++ - 作为类成员的数组不接受来自 cin 的输入

vb.net - 使用 Microsoft Fakes 模拟数据库

c# - StreamReader 的默认值是什么?

c# - 传递流(中间不必保存到内存)

Javascript/Typescript 从一个嵌套数组更新数据到另一个数组

创建数组并使用指针访问它们

vb.net - 如何使用 iTextsharp for VB.NET 将 PDF 中的字体更改为 Calibri

vb.net - MailKit/MimeKit SMTP 连接错误

c# - 系统.IO.IOException : The process cannot access the file because it is being used by another process

C++: std::vector 两端保留空间