Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Arquivos em Java

No description
by

Karla de Souza

on 2 June 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Arquivos em Java

Arquivos em Java
Leitura
Em Uma Camada
Escrita
Em Uma Camada
Arquivos de Texto
ABRA
Exceções

Para usar arquivos em Java devemos usar
Exceções
Introdução a Arquivos
Quando só armazenamos valores em uma variável ou mostramos resultados na tela do computador
estamos utilizando apenas a
memória RAM
do computador
.
Profa. Karla de Souza
As variáveis ficam disponíveis enquanto o programa está rodando. Quando é fechado,
a variável é apagada da memória
.
Podemos resgatar os valores disponíveis em nossos programas
gravando-os no disco rígido (HD).
Introdução a Arquivos
Ao armazenarmos dados no disco rígido podemos
acessá-los posteriormente
, mesmo que o programa tenha sido encerrado.
Tipos de Arquivos
4 tipos principais em Java:

Reader: Entrada de texto
Writer: Saída de texto
InputStream: Entrada de bytes
OutputStream: Saída de bytes

Introdução a Arquivos em Java
import java.io.*;
Fazemos isso através do uso de
arquivos
.
Em Java, para utilizarmos arquivos, utilizamos o conceito de
Fluxos (Streams)
.
Fluxos (Streams)
Todas as operações de
entrada/saída (E/S)

em Java são baseadas em
fluxos

Um
fluxo
é uma a conexão para uma fonte de dados ou para um destino de dados, ou para ambos

Um
fluxo de entrada
pode estar associado com o
teclado
Um
fluxo de entrada
ou um
fluxo de saída
podem estar associados a um
arquivo
.
Fluxos diferentes
, características diferentes:

Um
arquivo
ao ser lido tem
tamanho definido e um fim
Entrada no teclado
não tem fim definido

Base para a Utilização de Arquivos
1)
Abra
o fluxo de dados

2)
Use
o fluxo (leia, escreva, ou ambos)‏

3)
Feche
o fluxo de dados

Dificuldades em Utilizar Arquivos em Java
Muito flexível, muitas opções

Um tipo específico de E/S não é dificil

Dificuldade maior é escolher o tipo certo entre as opções

Para Arquivos em Java
Exceções
são formas de
tratar casos de erro em Java
, sem prejudicar a execução do programa.
Manipular arquivos pode causar uma série de erros
(arquivo não existente, danificado, caminho inválido, tipo incorreto, etc. ), por isso precisamos
tratar essas exceções
.
Para isso usaremos o comando
try-catch
(como veremos nos exemplos)
USE
FECHE
Arquivos de Texto
Arquivos de texto
são os
mais simples
possíveis:

podem ser facilmente
reutilizados
entre diversos programas.
São os de extensão .txt ou .dat
Alguns formatos que armazenam textos (como .doc ) são na verdade arquivos binários

Apenas programas que conhecem a codificação secreta podem interpretar arquivos binários.
Abrir o Fluxo
Objetivo
é
acessar dados externos
a seu programa, ou
armazenar dados fora
do seu programa
Abrir o fluxo é criar uma
conexão com a fonte/destino
de dados externo.
Uma vez
aberta a conexão
, podemos usá-la para
armazenar ou recuperar dados
Use o Fluxo
Alguns
fluxos
podem ser usados apenas para
entrada
, outros apenas para
saída
, outros para ambos
Usar um fluxo constitui apenas em
ler e escrever dados
Feche o Fluxo
Um
fluxo é um recurso
que gasta memória e processamento.
Existe um
limite imposto
pelo sistema operacional ou gerenciador de recursos para o número máximo de
fluxos abertos simultâneos
.
Sempre feche os fluxos !
Deve-se
fechar o fluxo
antes de reabri-lo.
Não se deve
ter mais de um fluxo aberto por arquivo
De Arquivos Texto
Em Arquivos Texto
Em Duas Camadas
Um Jeito + Fácil?
Existe um jeito Mais Fácil!!
Lembra do tipo Scanner??
Também podemos usá-lo para ler arquivos!!
Basta conectar a variável Scanner a um stream de arquivo (File) ao invés da entrada padrão (System.in)
E o melhor: assim podemos ler qualquer tipo básico do arquivo!
Lendo Arquivos Texto em uma Camada
Um
FileReader
é usado se para
conectar a um arquivo
usado para
entrada
.
O
nomearq
especifica onde o arquivo é encontrado (path)‏
Uma vez criado o
fileReader
não é mais necessário se preocupar com o
nomearq
!
int

ch
;

ch
=
fileReader
.
read( )
;
Lendo Arquivos Texto em uma Camada
Lendo Arquivos Texto em uma Camada
Ler caracteres
um por um
como numeros inteiros não é normalmente o que se deseja
Lendo Arquivos Texto em Duas Camadas
Lendo Arquivos Texto em Duas Camadas
Lendo Arquivos Texto em Duas Camadas
String

s
;
s
=
bufferedReader
.
readLine( )
;
FileReader

fileReader
=
new

FileReader
(
nomearq
);
fileReader
.
read()
lê um
caracter
e retorna seu
valor inteiro
, ou -1 quando acabam os caracteres.
O valor do número inteiro depende do sistema de caracteres em que o arquivo foi codificado (ASCII, Unicode, outro)‏
Um
BufferedReader
é uma classe auxiliar que converte inteiros em caracteres e também permite ler linhas.
O construtor do
BufferedReader
tem um
FileReader
como parâmetro:

BufferedReader

bufferedReader
=
new

BufferedReader
(
fileReader
);
Um
BufferedReader
retornará
null
quando não houver nada mais a ser lido.
Exercícios de Leitura de Arquivos Texto
1) Crie um arquivo no bloco de notas e escreva nele quaisquer informações. Salve-o com o nome “teste” (a extensão .txt é adicionada automaticamente) na pasta dos seus programas. Implemente então os exemplos 1 e 2 de forma que seja mostrado ao usuário os dados desse arquivo.

2) Crie um arquivo no bloco de notas e escreva nele números reais (use vírgula ao invés de ponto), salvando-o como Numeros.txt. Implemante então o exemplo 3 para que os números sejam mostrados ao usuário.

3) Modifique o Exemplo 3 para ler um arquivo de números inteiros.
Lista 8 - Parte 1
Em Duas Camadas
Um Jeito + Fácil?
Exercícios de Escrita em Arquivo Texto
Lista 8 - Parte 2
Escrita em Arquivo Texto em uma Camada
A forma mais simples (uma camada) é criar um
FileWriter
com o nome do arquivo.
Dessa forma teremos um
fluxo de escrita
do nosso programa a um
arquivo de texto
.
Podemos com isso
gravar caracteres e strings.
Exemplo 1
Exemplo 2
Exemplo 3
Escrita em Arquivo Texto em uma Camada
Exemplo 4
Problema:

Não conseguimos inserir “
novas linhas
” (‘
\n
’) no arquivo;

Escrita em Arquivo Texto em uma Camada

Solução
:

Usar uma escrita “
bufferizada
” (
2 camadas
).
Em dois níveis (
FileWriter
e
BufferedWriter
):
Escrita em Arquivo Texto em Duas Camadas

1) Criar um fluxo
FileWriter
com o
nome do arquivo
. Permite associar um arquivo texto a um fluxo de escrita.

2) Criar um adaptador
BufferedWriter
ligado ao objeto
FileWriter
. Maior eficiência na escrita de um arquivo.
Escrita em Arquivo Texto em Duas Camadas
Exemplo 5
Escrita em Arquivo Texto em Duas Camadas
Problema:

Só grava
strings ou caracteres
diretamente;
Método
write()
não é familiar
Solução:

Usar um tipo que permite usar
‘print’ e ‘println’
Tem um jeito Mais fácil!!
Basta criar uma variável do tipo
PrintWriter
e conectá-la a um
stream de arquivo
(
File
). A partir daí podemos usar o
print
e o
println
.
E o melhor: Assim podemos gravar
qualquer tipo básico
do arquivo!
Exemplo 6
1) Implemente o exemplo 4 e após sua execução, abra o arquivo Output.txt para ver seu conteúdo. Faça alterações nos dados a serem escritos no arquivo e reabra o arquivo após cada nova execução do exemplo para checar se houve o registro correto dos dados.


2) Implemente os exemplos 5 e 6, fazendo alterações nos dados a serem escritos. Abra os arquivos de saída para checar se houve o registro correto dos dados.


3) Faça um programa que leia uma frase do usuário e grave essa frase em um arquivo de texto nomeado “exe3.txt”.

4) Faça um programa que leia 10 números inteiros do usuário e os grave em um arquivo nomeado “numeros.txt”
Full transcript