我有文本文件并使用流阅读器读取它,当我的文件与数据一起有空行时,它不会读取任何内容。如何使用 C# 删除空行。
问问题
21670 次
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 回答