-3

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

4

3 回答 3

15

您没有显示任何代码,并且您的描述非常模糊,但是从 .NET 4 开始,这将是一种非常简单的方法来做您想做的事情:

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

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

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

List<string> lines = File.ReadLines().Where(line => line != "").ToList();
于 2012-09-07T08:40:22.897 回答
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);
于 2012-09-07T08:41:21.863 回答
-1

下面是代码:

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());
    }
}
于 2012-09-07T08:42:06.933 回答