我想在.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'(带空格)。无论如何要解决这个问题吗?
答案 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)