逐行从文件中读取数据

时间:2013-03-07 15:22:53

标签: c# .net file-io

我目前正在打开一个文件并将其显示在消息框中。

private void button2_Click_1(object sender, EventArgs e)
{
    //OpenFileDialog1.ShowDialog();
    OpenFileDialog file = new OpenFileDialog();
    file.FileName = "";
    file.Title = "Open A Text document.";
    file.Filter = "(*.gc)|*.gc|(*.etf)|*.etf|(*.txt)|*.txt|(*.GC)|*.GC|(*.tap)|*.tap";
    DialogResult result = file.ShowDialog();
    if (result == DialogResult.OK)
    {
        System.IO.StreamReader OpenFile = new System.IO.StreamReader(file.FileName);
        textBox1.Text = OpenFile.ReadToEnd();
        OpenFile.Close();


    }

    if (file.FileName.Length > 0)
    {
        OpenFile(file.FileName);
    }

但我需要逐行阅读文件并在消息框中显示。有没有办法改变这段代码。

5 个答案:

答案 0 :(得分:2)

有一个File.ReadLines方法返回一个IEnumerable,你可以这样做:

foreach(var line in File.ReadLines("myfile.txt")){
   //Do stuff with line
}

答案 1 :(得分:0)

考虑使用StreamReader.ReadLine()方法。

答案 2 :(得分:0)

这正是ReadLine方法的用途

while (OpenFile.Peek() >= 0) 
{
    MessageBox.Show(OpenFile.ReadLine());
}

答案 3 :(得分:0)

您是否尝试过OpenFile.ReadLine()方法?


或者,对于更激进的方法

string[] lines = OpenFile.ReadToEnd().Split('\n');

答案 4 :(得分:0)

从文件中读取所有行的最简单方法是File.ReadAllLines方法(在内部使用StreamReader):

foreach(string line File.ReadAllLines(fileName))
    MessageBox.Show(line);