Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从StreamWriter输出.txt文件而不写入磁盘?_C#_Asp.net_.net - Fatal编程技术网

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

C# 从StreamWriter输出.txt文件而不写入磁盘?,c#,asp.net,.net,C#,Asp.net,.net,是否有任何方法可以获取StreamWriter并将文件(在本例中为.txt文件)输出给用户,用户可以选择打开/保存,而无需实际将文件写入磁盘?如果不保存,它基本上会消失 我正在寻找相同的功能 HttpContext.Current.Response.TransmitFile(file); 但无需将任何内容保存到磁盘。谢谢 尝试一个System.IO.MemoryStream System.IO.MemoryStream ms = new System.IO.MemoryStream(); Sy

是否有任何方法可以获取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(字节[])

这样的办法应该行得通。如果文本文件位于流中,则可以很容易地从中获取字节[]

编辑:请参见上面的内容,但要更改ContentType对象

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