从StreamWriter输出.txt文件而不写入磁盘?
问题描述:
有没有什么办法让StreamWriter将文件(本例中是一个.txt文件)输出到用户,并且可以选择打开/保存而不需要实际将文件写入磁盘?如果没有保存,它将基本消失。从StreamWriter输出.txt文件而不写入磁盘?
我要找的
HttpContext.Current.Response.TransmitFile(file);
,但相同的功能,而无需任何保存到磁盘。谢谢!
答
尝试System.IO.MemoryStream
System.IO.MemoryStream ms = new System.IO.MemoryStream();
System.IO.StreamWriter sw = new System.IO.StreamWriter(ms);
sw.Write("hello");
答
我为一个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();
}
答
或使用Response.BinaryWrite(字节[]);
Response.AppendHeader("Content-Disposition", @"Attachment; Filename=MyFile.txt");
Response.ContentType = "plain/text";
Response.BinaryWrite(textFileBytes);
类似的东西应该工作。如果你有一个流中的文本文件,你可以很容易地得到它的字节[]。
编辑:请参阅上面的内容,但请明确更改ContentType。