使用C#读取文本文件时如何删除空行

时间:2012-09-07 08:36:49

标签: c#

我有文本文件并使用流阅读器读取它,当我的文件有空行和数据时,它不会读取任何内容。如何使用C#删除空行。

3 个答案:

答案 0 :(得分:12)

你没有显示任何代码,你的描述非常简洁,但是从.NET 4开始,这将是一个非常简单的方法来做你想要的:

IEnumerable<string> lines = File.ReadLines().Where(line => line != "");

请注意,它不会执行任何修剪,因此仍会返回仅包含空格的行。

另请注意,当您执行该行时,上面的代码不会读取文件 - 它只会在您尝试迭代lines时读取它,并会读取它再次您遍历lines的每个时间。如果你想一次性将它读入内存,你可能需要:

List<string> lines = File.ReadLines().Where(line => line != "").ToList();

答案 1 :(得分:1)

好吧,你应该在循环中使用StreamReader中的方法“ReadLine()”。当您收到一个空行时,只需检查从ReadLine()获取的字符串是否为空。如果是,请忽略该行。 尝试类似:

    StreamReader input = new StreamReader("...");
    String line = null;

    do 
    {
    line = input.ReadLine();

    if (line == null)
    {
    return;
    }

    if (line == String.Empty)
    {
    continue;
    }

    // Here you process the non-empty line

    } while (true);

答案 2 :(得分:0)

以下是代码

private void ReadFile()
 {
 try
        {
            string line = null;
            System.IO.TextReader readFile = new StreamReader("C:\\csharp.net-informations.txt");
            while (true)
            {
                line = readFile.ReadLine();
                if (line != null)
                {
                    MessageBox.Show (line);
                }
            }
            readFile.Close();
            readFile = null;
        }
        catch (IOException ex)
        {
            MessageBox.Show(ex.ToString());
        }
}