我有文本文件并使用流阅读器读取它,当我的文件有空行和数据时,它不会读取任何内容。如何使用C#删除空行。
答案 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());
}
}