Удалить пустые строки в текстовом файле - PullRequest
4 голосов
/ 25 июня 2011

Как вы можете удалить пустые строки из текстового файла в C #?

Ответы [ 3 ]

25 голосов
/ 25 июня 2011

Если файл маленький:

var lines = File.ReadAllLines(fileName).Where(arg => !string.IsNullOrWhiteSpace(arg));
File.WriteAllLines(fileName, lines);

Если файл огромен:

var tempFileName = Path.GetTempFileName();
try
{
    using (var streamReader = new StreamReader(inptuFileName))
    using (var streamWriter = new StreamWriter(tempFileName))
    {
        string line;
        while ((line = streamReader.ReadLine()) != null)
        {
            if (!string.IsNullOrWhiteSpace(line))
                streamWriter.WriteLine(line);
        }
    }
    File.Copy(tempFileName, inptuFileName, true);
}
finally
{
    File.Delete(tempFileName);
}
9 голосов
/ 25 июня 2011
File.WriteAllLines(path, File.ReadAllLines(path).Where(l => !string.IsNullOrWhiteSpace(l)));
3 голосов
/ 25 июня 2011

Считать все содержимое файла в строку, а затем просто запустить

string output = null;
try {
    output = Regex.Replace(input, @"^\s*$", "", RegexOptions.Multiline);
} catch (Exception e) {

}

Другие похожие параметры можно найти в Как удалить пустые строки из отформатированной строки?

...