过滤txt文本数据的空行记录

在使用bulk insert将txt数据批量导入sqlserver数据时,经常需要判断txt的数据格式,
如果txt文本中出现空行,bulk insert进数据库时就会出现“大容量插入: 在数据文件中遇到意外的文件结尾 (EOF)”,写了个函数避免发生类似错误发生。

引用空间

using System.Text.RegularExpressions;
using System.IO;

程序部分:

  string SourceFile = "FileManage/UploadedFiles/test.txt"
   
string SaveFile = "FileManage/UploadedFiles/file.txt";

   
//打开文件并显示其内容 
   StreamReader reader = File.OpenText(Server.MapPath(SourceFile)); 

   Regex reg 
= new Regex(@"\r\n\s*\r\n");//"\r\n\s*\r\n"表示空行,该空行除了有n个空格,没有其他字符串
   string FileStr = reg.Replace(reader.ReadToEnd().ToString(),"\r\n");//取得文件流,将空行替换掉
   FileStr = FileStr.Substring(0,FileStr.LastIndexOf("\n"));//截取文件流去掉最后一个换行
   FileStream fs = new FileStream(Server.MapPath(SaveFile),FileMode.OpenOrCreate,FileAccess.Write) ;
   StreamWriter FileStream 
= new StreamWriter(fs);
   FileStream.Flush();
   
   
// 使用StreamWriter来往文件中写入内容
   FileStream.BaseStream.Seek(0,SeekOrigin.Begin);
   
// 把的文件流写入文件
   FileStream.Write(FileStr);
   
//关闭此文件
   FileStream.Flush();
   FileStream.Close(); 

posted on 2006-04-10 13:53  砖头  阅读(2262)  评论(0)    收藏  举报

导航