如何在使用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()); } }