2009-02-17 117 views
1

有没有什么办法让StreamWriter将文件(本例中是一个.txt文件)输出到用户,并且可以选择打开/保存而不需要实际将文件写入磁盘?如果没有保存,它将基本消失。从StreamWriter输出.txt文件而不写入磁盘?

我要找的

HttpContext.Current.Response.TransmitFile(file); 

,但相同的功能,而无需任何保存到磁盘。谢谢!

回答

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

我为一个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(); 
     } 
1

或使用Response.BinaryWrite(字节[]);

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

类似的东西应该工作。如果你有一个流中的文本文件,你可以很容易地得到它的字节[]。

编辑:请参阅上面的内容,但请明确更改ContentType。