Isu*_*uru 1 vb.net text file-writing
我有一个程序,它以下列格式将数据写入文本文件.
test1 - test1 - test1 - test1
Run Code Online (Sandbox Code Playgroud)
在写完第一行之后,将清除文本字段以为另一轮用户输入腾出空间.简单地说,这应该是它的样子:
test1 - test1 - test1 - test1
test2 - test2 - test2 - test2
test3 - test3 - test3 - test3
Run Code Online (Sandbox Code Playgroud)
这是我的代码
If Not File.Exists(path) Then
MessageBox.Show("File doesn't exist in the given path", "No File", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
Else
Dim reader As New StreamReader(path)
reader = File.OpenText(path)
Dim content As String = reader.ReadToEnd
reader.Dispose()
reader.Close()
Dim writer As New StreamWriter(path) 'this is where the exception occurs
writer.Write("Origin : " & Trim(loadOrigin) & vbTab & "-" & vbTab)
writer.Write("Destination : " & Trim(destination) & vbTab & vbCrLf & vbCrLf)
writer.Write(Trim(txtCarrier.Text) & vbTab & "-" & vbTab)
writer.Write(Trim(txtLocation.Text) & vbTab & "-" & vbTab)
writer.Write(Trim(txtDest.Text) & vbTab & "-" & vbTab)
writer.Write(Trim(txtNotes.Text) & vbTab & vbCrLf & vbCrLf)
writer.Close()
MessageBox.Show("Text written to file", "Data Saved", MessageBoxButtons.OK, MessageBoxIcon.Information)
clearFields()
End If
Run Code Online (Sandbox Code Playgroud)
我曾经StreamReader
阅读过已经在文本文件中的内容并到达它的末尾以附加新行.但是,它显示消息的IOException错误进程无法访问文件'D:\ test.txt',因为它正被另一个进程使用.它没有帮助,甚至在我处置和/或关闭的StreamReader
.我在这里错过了什么?
这段代码是否符合我最初的目的,即将多行写入我上面提到的同一文本文件?我必须做出任何改变吗?
非常感谢你们.
reader.Close()
应该关闭文件并释放所有资源.尝试在调用之前关闭文件Dispose
(根据MSDN不需要,因为该Close
方法适合您.
Dim writer As New StreamWriter(path, True)
将打开文件以附加文本.Dim writer As New StreamWriter(path)
或Dim writer As New StreamWriter(path, False)
将覆盖文件(如果存在)或创建新文件(如果它不存在).
如果您仍然收到异常,请确保您没有在其他位置打开该文件(例如在记事本中).