从StreamWriter输出.txt文件而不写入磁盘?

时间:2009-02-17 11:45:46

标签: c# asp.net .net

有没有办法获取StreamWriter并将文件(在本例中为.txt文件)输出给用户,并选择打开/保存而不实际将文件写入磁盘?如果它没有保存,它基本上会消失。

我正在寻找

的相同功能
HttpContext.Current.Response.TransmitFile(file);

但无需将任何内容保存到磁盘。谢谢!

3 个答案:

答案 0 :(得分:8)

尝试System.IO.MemoryStream

System.IO.MemoryStream ms = new System.IO.MemoryStream();
System.IO.StreamWriter sw = new System.IO.StreamWriter(ms);
sw.Write("hello");

答案 1 :(得分:1)

我最近为XML文件做了这个,应该很容易适应

protected void Page_Load(object sender, EventArgs e)
        {
            Response.Clear();
            Response.AppendHeader("content-disposition", "attachment; filename=myfile.xml");
            Response.ContentType = "text/xml";
            UTF8Encoding encoding = new UTF8Encoding();
            Response.BinaryWrite(encoding.GetBytes("my string"));
            Response.Flush();
            Response.End();
        }

答案 2 :(得分:1)

或使用Response.BinaryWrite(byte []);

Response.AppendHeader("Content-Disposition", @"Attachment; Filename=MyFile.txt");                                               
Response.ContentType = "plain/text";    
Response.BinaryWrite(textFileBytes);

这样的事情应该有用。如果您在流中有文本文件,则可以轻松地从中获取byte []。

编辑:见上文,但是忽略地改变了ContentType。