VB.NET - Criar, Ler, Escrever, Copiar e Deletar arquivos Textos (revisitado)
No artigo de hoje eu vou recordar como podemos realizar as operações básicas (criar, ler, escrever, copiar e deletar) em arquivos textos usando a linguagem VB .NET. |
Neste artigo,
vamos explorar algumas operações que são realizadas com arquivos textos
utilizando VB.NET. A plataforma .NET oferece várias classes, como
File e FileInfo, para criar, ler, escrever e
executar operações semelhantes em um arquivo texto.
Obs: Este artigo complementa e recorda o
assunto visto no artigo :
VB.NET - Operações básicas com arquivos - Macoratti.net
Dessa forma, você pode usar o método Create() da classe
File para criar um arquivo de texto. Poderia também
usar o método CreateText() da classe FileInfo
para realizar a mesma tarefa. Da mesma forma essas classes também contêm
funcionalidades para copiar, mover ou apagar um arquivo. O truque é saber quando
usar cada classe e com que finalidade.
A classe 'File' contém métodos estáticos e realiza verificações de segurança em todos os métodos.
A classe FileInfo contém métodos de instância e a verificação de segurança não é necessária.
Portanto, os métodos
da classe FileInfo são úteis se você planeja usar a mesma instância da
classe em várias operações.
No entanto, para copiar, mover ou apagar os arquivos, os métodos estáticos são
mais rápidos. Além disso, o coletor de lixo tem menos trabalho a fazer quando
você usa a classe File, uma vez que os
métodos são estáticos.
Para a leitura e escrita de arquivo texto, temos algumas classes abstratas, como
as classes TextReader e TextWriter. Temos
também algumas classes úteis, como o StreamReader,
StringReader, StreamWriter e StringWriter que derivam dessas classes
abstratas.
Para ler um arquivo texto utilizaremos a classe StreamReader() criando uma instância da classe e usando o construtor onde informa o nome do arquivo a ser aberto.
A seguir temos os principais membros da classe StreamReader:
Close() | Fecha o StreamReader atual |
Dispose() | Libera os recursos usado pelo StreamReader |
Peek() | Retorna o próximo caractere disponível mas não o utiliza |
Read() | Lê o próximo caractere ou conjunto de caracteres de um stream |
ReadBlock() | Lê um número específico de caracteres de um stream atual e escreve os dados em um buffer |
ReadLine() | Lê uma linha de caractere do stream atual e retorna os dados em uma string |
ReadToEnd() | Lê o stream da posição atual até o fim do stream |
Para escrever em arquivos textos
vamos usar a classe
StreamWriter. A seguir temos as principais propriedades e métodos da classe
StreamWriter:
AutoFlush() | Obtém ou define um valor indicando se o StreamWriter irá liberar o buffer no fluxo subjacente após cada chamada a Write. |
Close() | Fecha o objeto atual de StreamWriter e o fluxo subjacente |
Dispose() | Libera os recursos usados pelo objeto de TextWriter |
Flush() | Limpa todos os buffers para o gravador atual e faz com que todos os dados armazenados em buffer sejam gravados no fluxo subjacente. |
NewLine() | |
Write() | Grava no fluxo. |
WriteLine() | Grava no fluxo seguido de um terminador de linha |
Para começar temos que referenciar o namespace System.IO e declarar e inicializar uma nova instância de StreamWriter usando um de seus construtores.
StreamWriter writer = new StreamWriter("macoratti.txt")
Nesta declaração um novo StreamWriter é inicializado com o nome do arquivo igual 'macoratti.txt' (você pode usar qualquer extensão como .dat por exemplo)
Se o arquivo não existir ela será criado. No exemplo, como não definimos um local para o arquivo, ele será criado no mesmo diretório da aplicação.
Este artigo não pretende ser um guia completo para demonstrar as capacidades
destas classes. Vamos usar uma abordagem 'Como faço para' para
demonstrar algumas das capacidades destas classes.
No final do artigo vou dar algumas referências para que você obtenha uma melhor compreensão destas classes.
Neste projeto para exibir o arquivo texto eu vou usar o controle RichTextBox e para permitir que o usuário selecione um arquivo eu vou usar o controle OpenFileDialog.
Nota: O controle OpenFileDialog é usado para localizar e selecionar arquivos em um computador.
Para permitir que o usuário selecione o caminho e o arquivo de destino nas
operações de Copiar e Mover arquivo eu vou usar a função InputBox
que exibe um prompt em uma caixa de diálogo, aguarda o usuário inserir texto ou
clicar em um botão, e depois retorna uma sequência contendo o conteúdo da caixa
de texto.
Nota:
O inputbox exibe um prompt em uma caixa de diálogo que aguarda
que um texto seja informado ou um dos botões seja clicado e então
retorna uma string contendo o conteúdo do TextBox. A sintaxe da função é a seguinte:
Dim Prompt As
String |
Recursos usados:
Criando o projeto no Visual Studio 2013 Express for windows desktop
Abra o VS 2013 Express for windows desktop e clique em New Project;
Selecione a linguagem Visual Basic e o template Windows Forms Application;
Informe o nome Operacoes_Basica_Com_ArquivosTexto e clique no botão OK;
Formulário principal do projeto form1.vb inclua os seguinte controles a partir da ToolBox:
1 Label - lblinfo
1 TextBox - txtArquivoTexto
1 Button - btnLocalizar
1 RichTextBox - rtbTexto
1 GroupBox - grbOperacoes
7 Buttons - btnCriar, btnEscrever, btnler, btnCopiar, btnMover, btnDeletar e btnSair
1 OpenFileDialog - ofd1
Disponha os controles no formulário form1.vb conforme o leiaute abaixo:
Após isso declare no início do formulário os namespaces:
Imports
System.SecurityAgora vamos definir em cada evento Click dos botões de comando o código pertinente a cada tarefa:
Código do botão - btnLocalizar - que abre uma caixa de diálogo Abrir Arquivo permitindo a seleção de um arquivo texto existente:
Private Sub btnLocalizar_Click(sender As Object, e As EventArgs) Handles btnLocalizar.Click 'define as propriedades do controle 'OpenFileDialog Me.ofd1.Multiselect = True Me.ofd1.Title = "Selecionar Arquivo" ofd1.InitialDirectory = "C:\dados" 'filtra para exibir somente arquivos de imagens ofd1.Filter = "Texto (*.txt)|*.txt|" + "Todos (*.*)|*.*" ofd1.CheckFileExists = True ofd1.CheckPathExists = True ofd1.FilterIndex = 1 ofd1.RestoreDirectory = True ofd1.ReadOnlyChecked = True ofd1.ShowReadOnly = True 'abre a caixa de diálogo |
1- Criar Arquivo Texto
Private Sub btnCriar_Click(sender As Object, e As EventArgs) Handles btnCriar.Click 'verifica se o nome do arquivo foi informado 'verifica se o arquivo existe |
2- Escrever em arquivo texto
Private Sub btnEscrever_Click(sender As Object, e As EventArgs) Handles btnEscrever.Click 'verifica se o nome do arquivo foi informado 'verifica se o arquivo existe ' Abre o arquivo para leitura |
3- Ler arquivo texto
Private Sub btnLer_Click(sender As Object, e As EventArgs) Handles btnLer.Click 'verifica se o nome do arquivo foi informado 'verifica se o arquivo existe |
4- Copiar arquivo texto
Private Sub btnCopiar_Click(sender As Object, e As EventArgs) Handles btnCopiar.Click 'define os parâmetros usados no inputbox 'verifica se o nome do arquivo foi informado
'verifica se o arquivo de destino informado é válido End Sub |
5- Mover arquivo texto
Private Sub btnMover_Click(sender As Object, e As EventArgs) Handles btnMover.Click 'define os parâmetros usados no inputbox 'verifica se o nome do arquivo foi informado
'obtem a entra do usuário 'verifica se o arquivo de destino informado é válido
|
6- Deletar arquivo texto
Private Sub btnDeletar_Click(sender As Object, e As EventArgs) Handles btnDeletar.Click 'verifica se o nome caminho do arquivo foram informados 'verifica se o arquivo origem existe End Sub |
7- Sair
Private
Sub
btnSair_Click(sender
As
Object,
e As
EventArgs)
Handles
btnSair.Click Me.Close() End Sub |
Executando o projeto iremos obter o seguinte resultado após realizar algumas operações:
Sugestões para melhorar o projeto:
- Remover o código duplicado para verificar se o arquivo informado é válido criando uma função para isso.
Pegue o projeto completo aqui: Operacoes_Basica_Com_ArquivosTexto.zip
E,
porque sois filhos, Deus enviou aos vossos corações o Espírito de seu Filho, que
clama: Aba, Pai.
Assim que já não és mais servo, mas filho; e, se és filho, és também herdeiro de
Deus por Cristo.
Gálatas 4:6,7
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
C # - Tratando arquivos textos - Inserindo texto em ... - Macoratti.net
VB.NET - Lendo e escrevendo em arquivo Textos - Macoratti.net
File and Stream - https://msdn.microsoft.com/en-us/library/k3352a4t%28v=vs.110%29.aspx
Stream - https://msdn.microsoft.com/en-us/library/system.io.stream%28v=vs.110%29.aspx
File Streams - https://msdn.microsoft.com/en-us/library/windows/desktop/aa364404%28v=vs.85%29.aspx