我怎样才能阅读大文本文件?

时间:2014-11-02 07:32:06

标签: c# .net file text

我有一个1000个文本文件,我希望读取单个到单个,每个文件有一个4700000记录,例如文件中的一个是:

43266200 6819           43295200 1393/05/23 14:28:45    113      1

我希望保存到sql server中,例如:

field1:43266200
field2:6819

我该怎么做?

3 个答案:

答案 0 :(得分:2)

var seperators = " ".ToCharArray();
foreach(var line in File.ReadLines(path))
{
  var fields = line.Split(seperators, StringSplitOptions.RemoveEmptyEntries);
  //now you have fields[0] and fields[1], save them in your database
}

答案 1 :(得分:1)

这可能对您有所帮助

var message ="43266200 6819           43295200 1393/05/23 14:28:45    113      1";
//Split your data into pieces
var messages=message.Split(' ').Where( o => !string.IsNullOrEmpty(o));
var i=0;
foreach(var item in messages)
{
  // do whatever you wanna to do with pieces
   Console.Write( "field {0}:{1}",++i,item);
}

答案 2 :(得分:1)

如果您正在从文件中读取文本,并且可以合理地假设空格字符将是您唯一的分隔符,则应使用String.Split()方法对每行进行标记:

// instantiate FileInfo of your file as yourFile

foreach (string line in yourFile.ReadLines())
{
    string[] lineTokens = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
}

String.Split()允许您根据您在第一个参数中提供的char分隔符将任何字符串分隔为子串的字符串[]。上面代码中的第二个参数是StringSplitOptions枚举中的值之一,其值为None(提供所有字符串)或RemoveEmptyEntries(不返回任何仅由分隔符组成的子字符串)。

然后,从那里,您可以遍历lineTokens并从每个标记组装一个对象,或者您可以组装一个SQL查询,其中任何给定的索引对应于您要添加的行中的列。

相关问题