我正在使用
using (StreamWriter writer = new StreamWriter(Response.OutputStream, System.Text.Encoding.UTF8));
为了直接写一些文本行并将它们作为附件发送到浏览器。
我现在也希望在文件中本地保存该文本,但我宁愿避免更改我的代码。在结束响应之前,我可以将Response.OutputStream
的内容写入文本文件吗?
答案 0 :(得分:0)
您可以使用Stream对象的CopyTo方法。最后,您可以将整个OutputStream复制到另一个将其写入文件的版本。 (https://msdn.microsoft.com/en-us/library/dd782932(v=vs.110).aspx)
答案 1 :(得分:0)
我相信你要求的是不可行的。我非常确定Response.OutpuStream
不可搜索(属性CanSeek
会产生false
),这意味着您无法开始阅读其内容。它可能也不可读(属性CanRead
产生false
)。
尝试任何这些操作都会产生NotSupportedException
。
如果您需要进行某些基本日志记录,则可以通过enabling .Net standard network traces解决此问题。或按照建议here编码IHttpModule
。
否则,您可以将中间MemoryStream
与StreamWriter
一起使用,然后将此MemoryStream
重置为Position
0,将其写入OutputStream
,重置再次到Position
0,将其写入您的文件。