1

我在覆盖我打开的文件时遇到问题OpenTextFileReader(path),如下所示:

allstring = IO.File.ReadAllText(path)
fileReader = My.Computer.FileSystem.OpenTextFileReader(path)
stringReader1 = fileReader.ReadLine()
stringReader2 = fileReader.ReadLine()

我只需要阅读前两行。如何关闭文件以便覆盖它?

4

3 回答 3

1

严重地?

调用 fileReader.Close 或者我更喜欢 using 子句:

    Dim allstring As String = IO.File.ReadAllText(Path)
    Using fileReader As StreamReader = My.Computer.FileSystem.OpenTextFileReader(Path)
        stringReader1 = fileReader.ReadLine()
        stringReader2 = fileReader.ReadLine()
    End Using

祝你好运,汤姆

于 2013-05-17T20:53:36.423 回答
1

你需要改变前两行吗?

怎么样?

    Dim lines() As String = System.IO.File.ReadAllLines(path)
    Debug.Print(lines(0))
    Debug.Print(lines(1))
    lines(0) = "new line1"
    lines(1) = "new line2"
    System.IO.File.WriteAllLines(path, lines)
于 2013-05-17T21:33:19.063 回答
0

最好坚持 .NET 做事方式。如建议的那样,Using子句更好,您还可以My.Computer.FileSystem.OpenTextFileReader通过将 apath直接传递给StreamReader 构造函数来节省,如下所示:

Using fileReader As New StreamReader(Path)
  stringReader1 = fileReader.ReadLine()
  stringReader2 = fileReader.ReadLine()
End Using

此外,allstring它是多余的,它没有在任何地方使用。

于 2013-05-17T21:25:01.517 回答