如何逐个字母地从文本文件中读取行?

时间:2011-08-21 19:37:47

标签: c#

我有一个ASCII文本文件。我想逐行读取文件,按位置划分,并使用C#将每个值保存到数据库。我怎么能实现这个目标?

3 个答案:

答案 0 :(得分:2)

System.IO.File.ReadAllLines("file")是使用文件的每一行获取数组的最简单方法,但会将整个内容加载到内存中,因此可能不适合大文件。

类似

foreach (var line in File.ReadAllLines("file.txt")) {
    var phoneNumber = line.Substring(0, 10); //get first 10 chars
    var zipCode = line.Substring(10, 5); //get next 5 chars
    ... etc
    ... store to DB.
}

或者在LINQ语法中,你可以做

var data = from line in File.ReadAllLines(filename)
           select new {Phone=line.Substring(0,10), Zip=line.Substring(10,5), ...};
foreach(var record in data) { 
    .. store to DB 
}

答案 1 :(得分:1)

使用StreamReader

using (var input = new StreamReader(File.OpenRead(inputFileName), Encoding.ASCII))
{
  string line;
  while((line = input.ReadLine()) != null) // or read data other way you want
  {
    //Do something here...
  }
}

答案 2 :(得分:1)

我猜你需要这样的东西?

    using (StreamReader reader = new StreamReader("file.txt"))
    {
        string line;
        while ((line = reader.ReadLine()) != null)
        {
                for(int i = 0; i < line.Length;  i++){
                     //do something with  line[i]  
                }

        }
    }