【C#】下载数据为txt文件

思路:获取到list类型的数据,将其通过浏览器下载成为txt文件,以下是正确写法,已进行过测试

var list =new List<string>();  //下载的数据           
using (MemoryStream stream=new MemoryStream())
{
    BinaryWriter bw=new BinaryWriter(stream);
    foreach (var data in list)
    {
        byte[] url = Encoding.UTF8.GetBytes(data.Url);
        bw.Write(url);
        bw.Write("\r\n");
    }
    var bytes = stream.ToArray();
    //下载 fileName为下载的数据名称,例如:下载.txt;其中文件扩展名一定要加,会下载成对应的格式
     System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", fileName));
     System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
     System.Web.HttpContext.Current.Response.BinaryWrite(bytes);
     System.Web.HttpContext.Current.Response.End();

}

坑;
1.BinaryWriter写入文件时,前头会加一个其他乱码字符,用来标注长度,所以在写入的时候要将数据转为byte,下面的写法会有问题

 bw.Write(data.Url);
 bw.Write("\r\n");

结果:
在这里插入图片描述
2.如果不加\r\n,内容会写在一行
在这里插入图片描述

3.如果只加了\n,结果显示如下
在这里插入图片描述
完结撒花~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值