要么我缺少一些非常明显的东西,要么关于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整天都行,所以我知道它正在读取文件并且文件不是空的,我已经检查了作为字符串返回的行的类型。这对我来说毫无意义。
答案 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))