C#生成txt文件
2010-11-24 22:21
344 查看
代码 using System; using System.Text; using System.IO; namespace Farproc.Text { /// <summary> /// 用于取得一个文本文件的编码方式(Encoding)。 /// </summary> public class TxtFileEncoding { public TxtFileEncoding() { // // TODO: 在此处添加构造函数逻辑 // } /// <summary> /// 取得一个文本文件的编码方式。如果无法在文件头部找到有效的前导符,Encoding.Default将被返回。 /// </summary> /// <param name="fileName">文件名。</param> /// <returns></returns> public static Encoding GetEncoding(string fileName) { return GetEncoding(fileName, Encoding.Default); } /// <summary> /// 取得一个文本文件流的编码方式。 /// </summary> /// <param name="stream">文本文件流。</param> /// <returns></returns> public static Encoding GetEncoding(FileStream stream) { return GetEncoding(stream, Encoding.Default); } /// <summary> /// 取得一个文本文件的编码方式。 /// </summary> /// <param name="fileName">文件名。</param> /// <param name="defaultEncoding">默认编码方式。当该方法无法从文件的头部取得有效的前导符时,将返回该编码方式。</param> /// <returns></returns> public static Encoding GetEncoding(string fileName, Encoding defaultEncoding) { FileStream fs = new FileStream(fileName, FileMode.Open); Encoding targetEncoding = GetEncoding(fs, defaultEncoding); fs.Close(); return targetEncoding; } /// <summary> /// 取得一个文本文件流的编码方式。 /// </summary> /// <param name="stream">文本文件流。</param> /// <param name="defaultEncoding">默认编码方式。当该方法无法从文件的头部取得有效的前导符时,将返回该编码方式。</param> /// <returns></returns> public static Encoding GetEncoding(FileStream stream, Encoding defaultEncoding) { Encoding targetEncoding = defaultEncoding; if(stream != null && stream.Length >= 2) { //保存文件流的前4个字节 byte byte1 = 0; byte byte2 = 0; byte byte3 = 0; byte byte4 = 0; //保存当前Seek位置 long origPos = stream.Seek(0, SeekOrigin.Begin); stream.Seek(0, SeekOrigin.Begin); int nByte = stream.ReadByte(); byte1 = Convert.ToByte(nByte); byte2 = Convert.ToByte(stream.ReadByte()); if(stream.Length >= 3) { byte3 = Convert.ToByte(stream.ReadByte()); } if(stream.Length >= 4) { byte4 = Convert.ToByte(stream.ReadByte()); } //根据文件流的前4个字节判断Encoding //Unicode {0xFF, 0xFE}; //BE-Unicode {0xFE, 0xFF}; //UTF8 = {0xEF, 0xBB, 0xBF}; if(byte1 == 0xFE && byte2 == 0xFF)//UnicodeBe { targetEncoding = Encoding.BigEndianUnicode; } if(byte1 == 0xFF && byte2 == 0xFE && byte3 != 0xFF)//Unicode { targetEncoding = Encoding.Unicode; } if(byte1 == 0xEF && byte2 == 0xBB && byte3 == 0xBF)//UTF8 { targetEncoding = Encoding.UTF8; } //恢复Seek位置 stream.Seek(origPos, SeekOrigin.Begin); } return targetEncoding; } }
代码 using System; using Farproc.Text; using System.Text; using System.IO; namespace ConsoleApplication1 { /// <summary> /// Class1 的摘要说明。 /// </summary> class Class1 { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(string[] args) { // // TODO: 在此处添加代码以启动应用程序 // string fileName = @"e:\a.txt"; //生成一个big endian Unicode编码格式的文本文件 StreamWriter sw = new StreamWriter(fileName, false, Encoding.BigEndianUnicode);//你可以试试其他编码,比如Encoding.GetEncoding("GB2312")或UTF8 sw.Write("这是一个String"); sw.Close(); //读取 Encoding fileEncoding = TxtFileEncoding.GetEncoding(fileName, Encoding.GetEncoding("GB2312"));//取得这txt文件的编码 Console.WriteLine("这个文本文件的编码为:" + fileEncoding.EncodingName); StreamReader sr = new StreamReader(fileName, fileEncoding);//用该编码创建StreamReader //用下面的方法虽然可以让系统自动判断文本文件的编码格式,但是我们无法取得该文本文件的编码 //sr.CurrentEncoding永远为 Unicode(UTF-8) //StreamReader sr = new StreamReader(fileName, true); //Console.WriteLine("这个文本文件的编码为:" + sr.CurrentEncoding.EncodingName); Console.WriteLine("这个文本文件的内容为:" + sr.ReadToEnd()); sr.Close(); Console.ReadLine(); } } }
你先将你导出的东西生成一个txt文件,然后在按钮中加入以下代码
FileName为你导出的txt文件的全路径
FileInfo file = new FileInfo(FileName);//用于获得文件信息
Response.Clear();//清空输出
Response.Charset = "GB2312";//设定编码
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(FileName));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", file.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-txt";
// 把文件流发送到客户端
Response.WriteFile(file.FullName);
相关文章推荐
- C# 生成Txt文件
- C# 生成txt文件
- C#生成txt文件
- c# 生成txt文件,写入内容
- c#读取txt文件并生成一张表
- C# 把图片转换成字符串存入.txt文件中,并从.txt中读出生成图片
- c# 生成txt文件
- C#生成PDF文档,读取TXT文件内容
- C# 生成txt日志文件
- C#生成PDF文档,读取TXT文件内容
- C#生成PDF文档,读取TXT文件内容
- C#生成txt文件,并将数据写入进去
- C#生成CHM文件(中级篇)
- [转]C#读取CSV,Excel,Txt文件,删除文件,拷贝文件
- C#打开保存txt文件
- C#操作txt文件
- Windows下生成txt文件时的换行
- C#生成CHM文件(应用篇)
- 动态生成.txt文件并提供下载
- c#读取文件内容存放到int数组 array.txt