writeToFile.WriteLine退格?

时间:2016-11-22 03:49:39

标签: vb.net

我想在.txt文件中写一些文字,这就是我所拥有的,它主要起作用:

        If System.IO.File.Exists(sListItems) = True Then

            Dim writeToFile As New System.IO.StreamWriter(sListItems, True)

            writeToFile.WriteLine(vbCrLf & txtGameTitle.Text)
            writeToFile.Close()

        Else

            MsgBox("Error!")

        End If
    End If

问题在于,当我输入诸如'Hello'之类的文本时,它会改为放入txt文件'Hello'(带空格)。无论如何要解决这个问题吗?

2 个答案:

答案 0 :(得分:-1)

好吧,我想我弄明白了。我改变了:

writeToFile.WriteLine()

writeToFile.Write()

它不再给出空格。

编辑:

我知道我的问题是什么,我正在使用lbGameList.SelectedItem.ToString()来查找名称并且它给了我空格,所以我添加了.TrimEnd它现在可以正常工作,谢谢

答案 1 :(得分:-1)

不要使用File.Exists()。这是一场等待爆发的竞争条件,而且速度较慢。相反,请查找与您要使用该文件的方式相匹配的FileMode;如果失败则处理异常(无论如何,由于前面提到的竞争条件,你需要处理异常)。

此外,如果您的Using阻止正确,则无需致电.Close()

Try
    Using fs As New FileStream(sListItems, FileMode.Open)
        fs.Seek(0, SeekOrigin.End)
        Using sw As New StreamWriter(fs)
            sw.WriteLine(txtGameTitle.Text)
        End Using
    End Using
Catch ex As IOException
    MsgBox("Error! -- " & ex.Message)
End If

但是我想知道你真的关心文件已经存在,而你真正需要做的就是:

File.AppendAllText(sListItems, txtGameTitle.Text)