Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何删除文本文件中的最后一行_Vb.net_Filesystems - Fatal编程技术网

Vb.net 如何删除文本文件中的最后一行

Vb.net 如何删除文本文件中的最后一行,vb.net,filesystems,Vb.net,Filesystems,有没有办法从1 MB文本文件中删除最后14个字符(最后一行),而不必读写每一行?使用.Seek和.SetLength方法。您可以先检查最后一行的长度,然后使用fs.SetLength删除最后一行的字符数 这样,您就不必使用循环,您的工作也可以非常高效地完成 Dim lines() As String = IO.File.ReadAllLines(f) Dim L As String = lines.Last.Length.ToString Dim f As String = "C

有没有办法从1 MB文本文件中删除最后14个字符(最后一行),而不必读写每一行?

使用.Seek和.SetLength方法。

您可以先检查最后一行的长度,然后使用fs.SetLength删除最后一行的字符数 这样,您就不必使用循环,您的工作也可以非常高效地完成

Dim lines() As String = IO.File.ReadAllLines(f)
    Dim L As String = lines.Last.Length.ToString
    Dim f As String = "C:\New Text Document.txt"

        Dim fs As New FileStream(f, FileMode.Open, 
        FileAccess.ReadWrite)
        fs.SetLength(fs.Length - L)
        fs.Close()

问题的可能重复是“不读不写每一行”。太棒了!!实际上,看起来我可以使用fs.SetLength(fs.Length-16)。我不明白为什么有那么多的帖子在讨论这个问题,有那么多的答案坚持要读写整个文件。