Очень удобным оператором VB является оператор Using
, который можно применять ко всем ресурсам, реализующим IDisposable
.Это гарантирует, что Dispose()
будет вызван в любом случае перед выходом из блока using.Даже когда возникает исключение или когда кодовый блок оставлен, например, Return
.(Если вы не тянете за вилку).
Dispose()
, в свою очередь, закрывает поток.
Dim content As String
Using reader As StreamReader = File.OpenText(Path)
content = reader.ReadToEnd
End Using
Using writer As New StreamWriter(Path, True) 'True for append mode
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)
End Using
MessageBox.Show("Text written to file", "Data Saved", MessageBoxButtons.OK, MessageBoxIcon.Information)
clearFields()
Примечание: Dim reader As New StreamReader(path)
устарело, поскольку вы сразу назначаете нового читателяreader = File.OpenText(path)
.Dim reader As StreamReader
будет достаточно.
Обратите также внимание, что нет необходимости читать до конца файла, чтобы добавить больше текста.Значение True
в качестве второго параметра конструктора StreamWriter
делает это само по себе.Если вам не нужно читать существующий контент по другой причине, вам следует полностью удалить часть StreamReader
.