我有一個程序,它將數據以下列格式寫入文本文件。如何將文本追加到現有的文本文件
test1 - test1 - test1 - test1
寫完第一行後,文本字段被清除,爲另一輪用戶輸入留出空間。簡單地說,這是應該的樣子:
test1 - test1 - test1 - test1
test2 - test2 - test2 - test2
test3 - test3 - test3 - test3
這裏是我的代碼
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
我以前
StreamReader
已經閱讀內容的文本文件中,達到它的結束追加新的路線。但是,它顯示IOException錯誤消息進程無法訪問文件'D:\ test.txt',因爲它正在被另一個進程使用。即使在我配置和/或關閉StreamReader
也沒有幫助。我在這裏錯過了什麼?這段代碼是否能滿足我將多行寫入同一文本文件的初始目的,如上所述?我必須做出任何改變嗎?
非常感謝大家。
我設置了'Dim writer As New StreamWriter(path,True)',它起作用!這種方式根本不需要「StreamReader」!非常感謝你:) – Isuru 2012-02-04 16:24:48