代码之家  ›  专栏  ›  技术社区  ›  naspinski

在不写入磁盘的情况下从streamwriter输出.txt文件?

  •  1
  • naspinski  · 技术社区  · 15 年前

    是否有任何方法可以使用streamwriter将文件(在本例中是.txt文件)输出给用户,并选择打开/保存而不将文件实际写入磁盘?如果它不被保存,它将基本上消失。

    我正在寻找相同的功能

    HttpContext.Current.Response.TransmitFile(file);
    

    但不必把任何东西保存到磁盘上。谢谢!

    3 回复  |  直到 15 年前
        1
  •  8
  •   Spence    15 年前

    试一试 System.IO.MemoryStream

    System.IO.MemoryStream ms = new System.IO.MemoryStream();
    System.IO.StreamWriter sw = new System.IO.StreamWriter(ms);
    sw.Write("hello");
    
        2
  •  1
  •   Sergio    15 年前

    我最近为一个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();
            }
    
        3
  •  1
  •   Phil Baines    15 年前

    或使用response.binarywrite(byte[]);

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

    像这样的东西应该管用。如果流中有文本文件,则可以轻松地从中获取字节[]。

    编辑:请参见上面的内容,但要明显更改内容类型。