manipulacao-de-arquivos
25 pág.

manipulacao-de-arquivos


DisciplinaAlgoritmos e Programação 2145 materiais3.829 seguidores
Pré-visualização1 página
ricardo.marcacini@ufms.br
Prof. Ricardo M. Marcacini
Curso:
Algoritmos e Programação IIAlgoritmos e Programação II
Manipulação de Arquivos (JAVA)Manipulação de Arquivos (JAVA)
PARTE 1 \u2013 Arquivos de TextoPARTE 1 \u2013 Arquivos de Texto
Sistemas de Informação
2º Semestre / 2013
http://www.marcacini.com.br/ufms/
Aula 2
\ue00a Tipos de Arquivo (Texto e Binário)
\ue00a Declarando arquivos com File
\ue00a Leitura de arquivos com FileReader e BufferedReader
\ue00a Escrita de arquivos com FileWriter
ALG2-02-ARQUIVOS-PARTE1 2
Motivação
\ue00a Dados do programa em execução ficam 
armazenados na memória do computador
\ue00a O que acontece quando o programa é encerrado?
\ue00a Dados são perdidos memória primária é volátil!\u2192
ALG2-02-ARQUIVOS-PARTE1 3
Motivação
\ue00a Dados do programa em execução ficam 
armazenados na memória do computador
\ue00a O que acontece quando o programa é encerrado?
\ue00a Dados são perdidos memória primária é volátil!\u2192
\ue00a Como armazenar e recuperar dados
\ue00a Armazenar em disco arquivos!\u2192
\ue00a Memória secundária (não volátil)
\ue00a Pode ser acessado por vários programas que 
conheçam a estrutura do arquivo
ALG2-02-ARQUIVOS-PARTE1 4
Tipos de Arquivos
\ue00a Dois tipos de arquivos: Texto e Binário
\ue00a Arquivos de Texto
\ue00a Sequência de caracteres ASCII
\ue00a Compreensíveis por humanos
ALG2-02-ARQUIVOS-PARTE1 5
Tipos de Arquivos
\ue00a Dois tipos de arquivos: Texto e Binário
\ue00a Arquivos de Texto
\ue00a Sequência de caracteres ASCII
\ue00a Compreensíveis por humanos
\ue00a Arquivos Binários
\ue00a Sequência de bytes
\ue00a Não compreensíveis por humanos (normais)
ALG2-02-ARQUIVOS-PARTE1 6
A Classe File
\ue00a Arquivos (e diretórios) são representados 
por meio de uma classe chamada File
\ue00a Seu programa deve incluir bibliotecas para 
manipulação de arquivos
import java.io.*;
\ue00a Como declarar um variável do tipo arquivo?
ALG2-02-ARQUIVOS-PARTE1 7
Exemplo01 \u2013 Declarando arquivos e obtendo 
detalhes sobre eles...
ALG2-02-ARQUIVOS-PARTE1 8
Arquivos de Texto: LEITURA
\ue00a A leitura de arquivo de textos utiliza a 
classe java FileReader
\ue00a FileReader possui um método read()
\ue00a Leitura de um caractere por vez (código Ascii)
\ue00a O método read() retorna -1 quando chega no final 
do arquivo
\ue00a Vamos declarar um arquivo e testar 
FileReader e o método read()
ALG2-02-ARQUIVOS-PARTE1 9
Exemplo02 \u2013 Leitura de arquivos de texto (caracter 
por caracter) com FileReader
ALG2-02-ARQUIVOS-PARTE1 10
Arquivos de Texto: LEITURA
\ue00a Ler \u201ccaracter por caracter\u201d pode ser 
ineficiente para muitas aplicações
\ue00a Podemos ler um bloco de texto inteiro de 
uma única vez (leituras com buffers!)
\ue00a A classe java BufferedReader 
\ue00a Trabalha junto com o FileReader
\ue00a Leitura de linha por linha: método readLine()
\ue00a O método readLine() retorna null quando chega 
no final do arquivo
ALG2-02-ARQUIVOS-PARTE1 11
Exemplo03 \u2013 Leitura de arquivos de texto (linha por 
linha) com BufferedReader
ALG2-02-ARQUIVOS-PARTE1 12
Arquivos de Texto: ESCRITA
\ue00a A leitura de arquivo de textos utiliza a 
classe java FileWriter
\ue00a Criação automática do arquivo se ele não existe!
\ue00a FileWriter possui um método write()
\ue00a Escreve um caractere por vez (código Ascii)
\ue00a Vamos declarar um arquivo e testar 
FileWriter e o método write()
ALG2-02-ARQUIVOS-PARTE1 13
Exemplo04 \u2013 Escrevendo em arquivos de texto
com FileWriter
ALG2-02-ARQUIVOS-PARTE1 14
Arquivos de Texto: ESCRITA
\ue00a O que acontece quando escrevemos um 
novo texto no mesmo arquivo com o 
programa do Exemplo04?
\ue00a O texto anterior é sobrescrito!
\ue00a Quero adicionar mais textos no final do arquivo!
Como resolver?
\ue00a Basta ativar (append=true) no segundo 
argumento do FileWriter
ALG2-02-ARQUIVOS-PARTE1 15
Exemplo05 \u2013 Escrevendo em arquivos de texto
com FileWriter (adicionando no final do arquivo)
ALG2-02-ARQUIVOS-PARTE1 16
Exemplo05 \u2013 Escrevendo em arquivos de texto
com FileWriter (adicionando no final do arquivo)
ALG2-02-ARQUIVOS-PARTE1 17
Manipulação de Strings
\ue00a Quando lidamos com arquivos textos 
precisamos manipular Strings
\ue00a Java possui muitos métodos úteis para 
manipulação de Strings
\ue00a Vamos rever os mais importantes...
ALG2-02-ARQUIVOS-PARTE1 18
Manipulação de Strings
\ue00a String s = \u201cTEXTO\u201d;
\ue00a s.length() número de caracteres da string\u2192
ALG2-02-ARQUIVOS-PARTE1 19
Manipulação de Strings
\ue00a String s = \u201cTEXTO\u201d;
\ue00a s.length() número de caracteres da string\u2192
\ue00a s.charAt(i) captura caracter na posição i\u2192
ALG2-02-ARQUIVOS-PARTE1 20
Manipulação de Strings
\ue00a String s = \u201cTEXTO\u201d;
\ue00a s.length() número de caracteres da string\u2192
\ue00a s.charAt(i) captura caracter na posição i\u2192
\ue00a s.equals(\u201cABC\u201d) verifica se o conteúdo de s é igual a \u2192
\u201cABC\u201d (nesse caso retorna falso)
ALG2-02-ARQUIVOS-PARTE1 21
Manipulação de Strings
\ue00a String s = \u201cTEXTO\u201d;
\ue00a s.length() número de caracteres da string\u2192
\ue00a s.charAt(i) captura caracter na posição i\u2192
\ue00a s.equals(\u201cABC\u201d) verifica se o conteúdo de s é igual a \u2192
\u201cABC\u201d (nesse caso retorna falso)
\ue00a s.toLowerCase() gera string com letras minúsculas\u2192
ALG2-02-ARQUIVOS-PARTE1 22
Manipulação de Strings
\ue00a String s = \u201cTEXTO\u201d;
\ue00a s.length() número de caracteres da string\u2192
\ue00a s.charAt(i) captura caracter na posição i\u2192
\ue00a s.equals(\u201cABC\u201d) verifica se o conteúdo de s é igual a \u2192
\u201cABC\u201d (nesse caso retorna falso)
\ue00a s.toLowerCase() gera string com letras minúsculas\u2192
\ue00a s.toUpperCase() gera string com letras maiúsculas\u2192
ALG2-02-ARQUIVOS-PARTE1 23
Manipulação de Strings
\ue00a String s = \u201cTEXTO\u201d;
\ue00a s.length() número de caracteres da string\u2192
\ue00a s.charAt(i) captura caracter na posição i\u2192
\ue00a s.equals(\u201cABC\u201d) verifica se o conteúdo de s é igual a \u2192
\u201cABC\u201d (nesse caso retorna falso)
\ue00a s.toLowerCase() gera string com letras minúsculas\u2192
\ue00a s.toUpperCase() gera string com letras maiúsculas\u2192
\ue00a s.trim() gera string removendo caracteres em branco \u2192
no início e fim da original
ALG2-02-ARQUIVOS-PARTE1 24
Manipulação de Strings
\ue00a String s = \u201cTEXTO\u201d;
\ue00a s.length() número de caracteres da string\u2192
\ue00a s.charAt(i) captura caracter na posição i\u2192
\ue00a s.equals(\u201cABC\u201d) verifica se o conteúdo de s é igual a \u2192
\u201cABC\u201d (nesse caso retorna falso)
\ue00a s.toLowerCase() gera string com letras minúsculas\u2192
\ue00a s.toUpperCase() gera string com letras maiúsculas\u2192
\ue00a s.trim() gera string removendo caracteres em branco \u2192
no início e fim da original
\ue00a s.split(delimitador) \u201cquebra\u201d a string de acordo com \u2192
um delimitador, obtendo um vetor de strings.
ALG2-02-ARQUIVOS-PARTE1 25
Vamos praticar...
\ue00a Ler uma planilha (formato texto : CSV)
\ue00a E entrada (dinheiro entrando na conta)\u2192
\ue00a S saída (dinheiro saindo da conta)\u2192
Escrever um programa para:
Parte 1:
Calcular o saldo envolvendo todos
os lançamentos!
Parte 2:
Calcular o saldo por tipo de
lançamento (considere que já
conhecemos os tipos de lançamento)
	Diapositivo 1
	Diapositivo 2
	Diapositivo 3
	Diapositivo 4
	Diapositivo 5
	Diapositivo 6
	Diapositivo 7
	Diapositivo 8
	Diapositivo 9
	Diapositivo 10
	Diapositivo 11
	Diapositivo 12
	Diapositivo 13
	Diapositivo 14
	Diapositivo 15
	Diapositivo 16
	Diapositivo 17
	Diapositivo 18
	Diapositivo 19
	Diapositivo 20
	Diapositivo 21
	Diapositivo 22
	Diapositivo 23
	Diapositivo 24
	Diapositivo 25