"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso excluir com eficiência as linhas de grandes arquivos de texto em C#?

Como posso excluir com eficiência as linhas de grandes arquivos de texto em C#?

Postado em 2025-03-22
Navegar:652

How Can I Efficiently Delete Lines from Large Text Files in C#?

C# Método de exclusão de linha de arquivo de texto eficiente

]

Ao processar arquivos de texto, geralmente é necessário excluir linhas específicas. Este artigo explora soluções eficientes para implementar essa tarefa em C#, especialmente para lidar com grandes arquivos de texto.

Visão geral da solução

Este esquema cria um arquivo temporário e copia seletivamente as linhas do arquivo original no arquivo temporário, excluindo as linhas a serem excluídas. Após o processamento da linha de destino, o arquivo temporário substitui o arquivo original, excluindo linhas desnecessárias.

Código implementação

string tempFile = Path.GetTempFileName();

using (StreamReader sr = new StreamReader("file.txt"))
using (StreamWriter sw = new StreamWriter(tempFile))
{
    string line;

    while ((line = sr.ReadLine()) != null)
    {
        if (line != "removeme")
            sw.WriteLine(line);
    }
}

File.Delete("file.txt");
File.Move(tempFile, "file.txt");

Este método garante que apenas as linhas necessárias sejam retidas ao excluir linhas de destino dos arquivos atualizados.

outras considerações

  • Performance: Para arquivos grandes, esse método minimiza o uso da memória e a E/S de disco processando linhas sequencialmente.
  • codificando: O código assume que o arquivo de texto é codificado usando UTF-8. Ajuste a codificação conforme necessário.
  • processamento de memória: Para arquivos menores, o processamento da memória pode ser mais eficiente. Por favor, considere o seguinte:
File.WriteAllLines("file.txt",
    File.ReadLines("file.txt").Where(l => l != "removeme").ToList());

Este método evita a criação de arquivos temporários, mas precisa ser executado imediatamente usando Tolist ().

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3