Do que trata o artigo: O artigo irá descrever os principais recursos da linguagem C# e do framework .Net para trabalhar com arquivos tanto com leitura como gravação destes. Você terá o primeiro contato com as classes disponibilizadas para escrever, ler e apagar arquivos. Também terá contato com as classes que permitem obter dados estatísticos do arquivo como tamanho, data da última modificação e se o arquivo existe. Além dos conceitos envolvidos, será feita uma aplicação de demonstração para que você possa ver os recursos em uso.
Para que serve: Sempre é necessário ler dados de arquivos quer sejam de texto, arquivos XML ou qualquer outro formato. Existem muitos
recursos dentro do framework .Net, mas nem sempre é muito fácil lembrar-se de como usá-los.
Em que situação o tema é útil: Mesmo com todas as funcionalidades oferecidas pelo sistema operacional, ao desenvolver aplicativos
comerciais sempre se acaba precisando escrever dados em arquivos geralmente do tipo texto ou outro formato qualquer para troca de dados entre aplicações. Caso você esteja
trabalhando com dados no formato texto e precise de referências rápidas para executar suas tarefas, este artigo oferece o que é necessário para executá-las. Além disto,
existem alguns cuidados que você precisará tomar para poder escrever e ler em arquivos e que são expostos neste artigo.
Resumo do DevMan: Todas as informações armazenadas no computador estão dentro de arquivos. Estudando os fundamentos da computação um pouco mais a fundo, você perceberá que até mesmo as pastas (ou diretórios para os mais antigos) consistem de arquivos especiais onde outros arquivos são armazenados. As tarefas mais comuns do programador incluem manipular arquivos verificando se existem ou não dentro do sistema de arquivos da máquina onde o programa está sendo executado. Também é necessário criar os arquivos, atualizar seus dados sobrescrevendo os dados existentes, renomear ou ainda excluir um arquivo que não é mais necessário. Dentro da proposta de não precisar começar de um ponto muito elementar, você tomará conhecimento do que é preciso fazer usando a linguagem C# para executar estas tarefas. Além do contato com os códigos e classes que serão usados, também levaremos em conta alguns pontos com relação à segurança. Outro ponto a ser abordado são os elementos usados pela interface do Windows para facilitar o trabalho com os arquivos. E como sempre, é bom ter um exemplo prático onde tudo o que se aprendeu possa ser aplicado.
Uma das maiores vantagens dos computadores modernos é a possibilidade de se poderem armazenar os dados do trabalho que está sendo feito para se usar mais tarde.
Pense por um momento em quais atividades que você executa diariamente usando os PC´s que fazem uso dos arquivos? Vão aqui algumas da minha lista:
- Eu faço login em um computador que armazena em arquivo o meu ID e minha senha;
- Após o login, o sistema lê as minhas preferências de uso do computador como o papel de parede e ícones da minha área de trabalho, mais uma vez, armazenado em arquivos;
- Quando abro o programa para ler os e-mails, primeiramente preciso fazer o download das mensagens que estão armazenadas em um servidor de internet remoto e gravá-los em minha máquina. Mesmo que eu use um Webmail (como o Gmail ou o Hotmail), as mensagens estão armazenadas em arquivos de um servidor;
- Como eu trabalho como programador, o código fonte fica gravado no disco do meu computador em arquivos texto especiais que são abertos pelo Visual Studio;
- Se eu preferir jogar, os dados usados para os jogos estão em arquivos;
- Músicas também são gravadas geralmente em arquivos MP3.
São tantas as operações feitas usando-se arquivos que se for citar todas elas, o artigo fica sem graça. Mas, esteja certo: uma hora destas você vai precisar fazer o uso da manipulação de arquivos. No início, quando não havia ainda o Windows e os sistemas operacionais eram muito básicos, os programadores precisavam preocupar-se em resolver muitos problemas ao manipular os arquivos. Vejamos alguns destes problemas:
- Era necessário localizar o arquivo dentro do disco, ler os bytes do mesmo e criar um objeto para manipular o arquivo a partir do endereço lógico do mesmo no disco rígido;
- Antes de ler os dados, era necessário armazenar os bytes que diziam qual o tipo do arquivo: se binário ou texto. Era preciso guardar o número de bytes no momento da leitura para que fosse assegurado ao ler que o tamanho dos dados estava correto;
- Se o arquivo estivesse dentro de um sistema UNIX, vários atributos precisavam ser tratados. Estes atributos diziam se se tratava de um arquivo regular, um diretório, um dispositivo de sistema ou ainda um link simbólico para outro arquivo;
- Também seria necessário verificar se o usuário atualmente carregado no sistema tinha as permissões para ler o arquivo, para executar e gravar. Geralmente, nestes sistemas, nem sempre todas as permissões eram garantidas.
Ou seja, era um trabalho bastante árduo.
Com a chegada dos sistemas operacionais mais modernos, estes passaram a oferecer um conjunto de objetos para executar estas tarefas. Geralmente chamados de API (Application Programming Interfaces), estas bibliotecas cobriam boa parte das tarefas, embora, com alguma complexidade.
A partir do surgimento dos ambientes gerenciados como o framework .Net as tarefas ficaram muito mais simplificadas pois, quase tudo o que se desejar fazer com os arquivos nos programas possuirá uma classe que irá resolver o problema para o programador. Não é possível cobrir todas as classes em um artigo como este, mas, partindo das tarefas mais básicas, vamos descobrindo como fazer as tarefas mais elementares.
Para que você consiga entender bem o artigo e poder executar os exemplos eu espero que você tenha algum conhecimento dos seguintes assuntos:
- Criação de programa console e Windows Forms usando o Visual Studio;
- Uso do modo de debug do Visual Studio para corrigir erros no código;
- Criação de classes.
- Programação orientada a objetos com C#.
Classes para ler e gravar arquivos
Basicamente todas as classes usadas para o trabalho com arquivos estão dentro da biblioteca System.IO. Assim, para poder usar estas em seu projeto ou sua classe você precisa adicionar a biblioteca da seguinte forma:
using System.IO;
A Tabela 1 mostra as principais classes e as funcionalidades que ela provê. Além disto, demonstra também o contexto mais comum onde este tipo de classe será usada.
Classe | Funcionalidade |
---|---|
File | Usa métodos estáticos para executar tarefas comuns como: criar arquivos de texto, gravar e ler os dados em um arquivo, renomear, excluir e verificar se um arquivo existe. |
... |
Confira outros conteúdos:
Teste unitário com NUnit
Como migrar projetos do ASP.NET MVC...
Crie relatórios com o Stimulsoft...
Promoção de Natal
Oferta exclusiva de Natal!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,90
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 59,90 /mês
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.