如何将MemoryStream写入文本文件末尾
本文关键字:文本 文件 MemoryStream | 更新日期: 2023-09-27 17:59:52
我用这段代码将内存流数据写入文本文件。
Dim memoryStrm As New MemoryStream()
Dim writer As New StreamWriter(memoryStrm)
Dim thefile As New FileStream(Application.StartupPath & "'DocsLog" & ".txt", FileMode.Open, FileAccess.Write, FileShare.ReadWrite)
' now Write the MemoryStream to the file
memoryStrm.WriteTo(theFile)
但当我将数据写入文本文件时,我会丢失它以前的内容。我应该如何将备忘录流写到文本文件的末尾?(仅将内存流数据添加到文件末尾)
执行
theFile.Seek(0, SeekOrigin.End)
在写入任何内容之前,
使用一个接受FileMode
的FileStream
构造函数,并指定FileMode.Append
而不是FileMode.Open
。即使用简单的构造器:
Dim thefile As FileStream = _
new FileStream(fileName, FileMode.Append)
然后使用stream.CopyTo.将源流复制到目的地
复制从当前流中的当前位置开始,并且在复制操作完成后不会重置目标流的位置。
memoryStrm.CopyTo(theFile);
注:
- 确保正确处理流(即使用C#中的
using
) - 如果编码不匹配,从内存流复制字节可能会中断编码。如果两者确实都是编码未知的文本文件,您可能更适合阅读文本内容并重新创建带有连接文本的文件
- 注意记忆流开头的BOM
只需更改FileMode。打开FileMode.Append.