2
respostas

SObre fazer uma copia do arquivo usando StreamReader e Writer

` using ByteBankImportacaoExportacao.Modelos; using System; using System.IO; //Input e output using System.Text;

namespace ByteBankImportacaoExportacao { partial class Program { static void CopiandoArquivo() { var arquivoOriginal = new FileStream("contas.txt", FileMode.Open); ; var arquivoCopia = new FileStream("contasExportadas.csv", FileMode.Create);

        var leitor = new StreamReader(arquivoOriginal, Encoding.UTF8);
        var escritor = new StreamWriter(arquivoCopia, Encoding.UTF8);

        using (arquivoOriginal)
        using (leitor)
        using (arquivoCopia)
        using (escritor)
        {
            while (!leitor.EndOfStream)
            {
                var linha = leitor.ReadLine();
                escritor.WriteLine(linha);
            }
        }
    }
}

} `´ É uma boa pratica usar esse tanto de using para ler e escrever o arquivo, ou tem alguma forma mais simplificada?

2 respostas

Olá Alessandro!

É uma boa prática sim. O using é a mesma coisa que um try..finally onde a instrução do finally seria exatamente usar o Dispose() que seria a instrução para liberar recursos.

Para uma conexão com banco de dados você teria:

conexao.Open();
// Instruções com os dados aqui
conexao.Close();

O using teria essa mesma função.

Bons estudos!

Respondendo sua pergunta diretamente, sim eh uma boa pratica.

Using implementa IDisposable, e IDisposable garante que recursos nao gerenciados sejam liberados.

Nao conheco nenhum acucar sintatico para melhorar a escrita do using e using nested. Pesquisei e nao encontrei referencia alguma.

Do que jeito que escreveu esta perfeito.

Saudacoes.