如何解决StreamWriter随机不将最后一行输出到文件中
我正在尝试将一个类保存到文本文件中,并且得到的结果好坏参半。一半时间,添加的最后一行在文件中,有时不在文件中。我无法获得一致的输出到文件。
因此,我添加了一个调试程序来向我展示在StreamWriter.Write
之前正在写的内容,并且它显示了我添加的行,但未在文件中显示。
^此行是未写入文件的最后一行。
这是我保存数据的代码的样子:
Private sub SaveMemoUsersFile()
If _memoList is nothing Then
return
End If
Dim memofile = Path.Combine(Configuration.DataFileLocations,$"{Configuration.CompanyID}ucmemoUsers.txt")
Const quote As String = """"
Const comma As String = ","
Dim both = $"{quote}{comma}{quote}"
Using sw = New StreamWriter(memofile)
For Each memoUsers As MemoUsers In _memoList
Dim sb = New StringBuilder()
sb.Append(quote)
sb.Append(memoUsers.Initials)
sb.Append(both)
sb.Append(memoUsers.EmailAddress)
sb.Append(both)
sb.Append(memoUsers.DelinquentLetterCode)
sb.Append(both)
sb.Append(memoUsers.Description)
sb.Append(quote)
'sb.Append(vbCr)
console.write(sb) <--- shows the last line
sw.WriteLine(sb.ToString()) <--- but doesn't write it to the file
Next
End Using
_memoList = nothing
End sub
解决方法
也可以在stringbuilder中构建文件并将其写入:
Private sub SaveMemoUsersFile()
If _memoList is Nothing Then
return
End If
Dim q = """"
Dim b = $"{q},{q}"
Dim sb = New StringBuilder()
For Each memoUsers As MemoUsers In _memoList
sb.Append(q)
sb.Append(memoUsers.Initials).Append(b)
sb.Append(memoUsers.EmailAddress).Append(b)
sb.Append(memoUsers.DelinquentLetterCode).Append(b)
sb.Append(memoUsers.Description).AppendLine(q)
Next
Dim memofile = Path.Combine(Configuration.DataFileLocations,$"{Configuration.CompanyID}ucMemoUsers.txt")
IO.File.WriteAllText(memoFIle,sb.ToString())
_memoList = nothing
End sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。