vb.net从.txt文件中读取并显示内容

时间:2014-08-27 14:27:41

标签: vb.net file streamreader

我正在编写一个简单的程序来读写.txt文件。我有程序要写入并保存.txt文件但是我在读取.txt文件时遇到了一些麻烦。这是我到目前为止所得到的:

Using openTxt As New OpenFileDialog()
    If openTxt.ShowDialog() = Windows.Forms.DialogResult.OK Then
        Dim displayForm As New Form
        Dim textReader As New System.IO.StreamReader(openTxt.FileName)
        displayForm.ListBox1.Text = textReader.ReadToEnd
        textReader.Close()
        displayForm.Show()
    Else
        MessageBox.Show("Not a text file")
    End If
End Using

我想要发生的是当文本被读取时,它会填充在另一个表单(displayForm)中的列表框中。我已尝试将文本显示在同一表单上的列表框中,以查看是否可能已更改任何内容但仍保持空白。我可以确认我只用.txt文件测试它,因为我在这个阶段没有进行错误检查。非常感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

ListBox不是用于显示文本,而是用于显示列表(顾名思义)。如果要显示文本,请使用TextBox。由于文件可能包含多行,因此您可以将.Multiline属性设置为True,以便TextBox正确显示该文件。

此外,在处理using statement

时,您应该使用Streams
Dim content As String = ""
Using textReader As New System.IO.StreamReader(openTxt.FileName)
  content = textReader.ReadToEnd
End Using
displayForm.ListBox1.Text = content

或只是使用System.IO.File.ReadAllText("path to file here")命令。

答案 1 :(得分:0)

是否要逐行读取文件并填充列表框控件?

如果是这种情况,请尝试此功能

Function ReadFile(ByVal Filename As String) As String()
    Dim Sl As New List(Of String)
    Using Sr As New StreamReader(Filename)
        While Sr.Peek >= 0
            Sl.Add(Sr.ReadLine())
        End While
    End Using
    Return Sl.ToArray
End Function

并像这样使用:

    For Each Line As String In ReadFile("FILENAME.txt")
        ListBox1.Items.Add(Line)
    Next