从文件读取时,VB无法串行到arraylist

时间:2013-10-09 02:03:19

标签: vb.net arraylist

要么我缺少一些非常明显的东西,要么关于vb的东西真的搞砸了。我正在尝试从文件读入并将行添加到arraylist ...非常简单如果我以这种方式向字符串添加字符串

selectOptions.Add("Standard")
selectOptions.Add("Priority")
selectOptions.Add("3-Day")
selectOptions.Add("Overnight")

我没有问题

但是当我这样做时,它似乎最终为空,这对我来说毫无意义。

Dim reader As StreamReader = My.Computer.FileSystem.OpenTextFileReader(path)
    Dim line As String
    Do
        line = reader.ReadLine
        selectOptions.Add(line)
    Loop Until line Is Nothing
    reader.Close()

Messagebox.show整天都行,所以我知道它正在读取文件并且文件不是空的,我已经检查了作为字符串返回的行的类型。这对我来说毫无意义。

1 个答案:

答案 0 :(得分:2)

在While循环中检查reader.EndOfStream可能会更好:

    Dim reader As New StreamReader(path)
    Dim line As String
    While Not reader.EndOfStream
        line = reader.ReadLine
        selectOptions.Add(line)
    End While
    reader.Close()

如果您已正确启用所有选项,则如果selectOptions未声明为New ArrayList,您也可以获得例外。

另一件需要记住的事情是,如果你的代码在表单的Load Handler中,它就不会抛出异常,只会突破处理程序例程并加载表单。这使得很难找到诸如错误的文件名,严重声明的对象等等。

我做的一件事就是将可疑代码放在按钮的Click处理程序中,看看它会抛出什么异常。

当然,如果您使用File.ReadAllLines方法并将其直接添加到ArrayList,这可能都没有用之处:

selectOptions.AddRange(File.ReadAllLines(path))