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

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

好吧,你应该在循环中使用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); 

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

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

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

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

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

以下是代码

 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()); } }