10 io

255 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
255
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

10 io

  1. 1. Input/Output
  2. 2. Persistência● Até então falamos muito de memória● Basicamente sobre a memória RAM, que é volátil● Tudo pode ser facilmente perdido se o programa parar de executar● Para evitar a perda de informação devemos armazena-la ou persisti-la
  3. 3. Arquivo● Classe File representa um arquivo do HDD● Contém vários métodos relacionados a arquivos. Ex: createNewFile() delete() getAbsolutePath() list() mkdirs()
  4. 4. I/O● Ler e escrever bytes, caracteres e Strings de/para a entrada e saída padrão● Ler e escrever bytes, caracteres e Strings de/para arquivos● Utilizar buffers para agilizar a leitura e escrita através de fluxos
  5. 5. OO em casos de I/O● Assim como toda API do Java, ela também é orientada a objetos, usa e abusa de conceitos da OO: classes abstratas, interfaces e polimorfismo● Utiliza fluxos de entrada (InputStream) e saida (OutputStream), para operações com arquivos, sockets e entrada e saida padrão (teclado e console)● InputStream e OutputStream definem o comportamento dos fluxos (input ou leitura de bytes e output ou escrita de bytes)● Vantagem da abstração é tornar acoplavel (como um cartucho) a opção de I/O
  6. 6. Inputs● InputStream, InputStreamReader, BufferedReader● InputStream (trata a leitura de bytes): possui diversas subclasses, ex: ObjectInputStream, AudioInputStream, ByteArrayInputStream.● InputStreamReader (trata a leitura de caracteres): subclasse de Reader, feita para tratar diretamente com caracteres e suporta vários encodings.● BufferedReader (trata leitura de Strings): outra subclasse de Reader, que recebe um outro Reader como argumento no seu construtor. Sua ideia é concatenar chars de maneira mais transparente.
  7. 7. Inputs
  8. 8. Outputs● OutputStream, OutputStreamReader, BufferedWriter● OutputStream (trata a escrita de bytes): possui diversas subclasses, ex: ObjectOutputStream, ByteArrayOutputStream.● OutputStreamWriter (trata a escrita de caracteres): subclasse de Writer, feita para tratar diretamente com caracteres e suporta vários encodings.● BufferedWriter (trata escrita de Strings): outra subclasse de Writer, que recebe um outro Writer como argumento no seu construtor. Sua ideia é concatenar chars de maneira mais transparente.
  9. 9. Outputs
  10. 10. Fechando Recursos● Pera evitar problemas, é importante que um arquivo/recurso seja fechado pelo proprio programador.● Se um recurso não for fechado pelo programador, ele pode deixar de ser referenciado e o GC, eventualmente, poderá fecha-lo.● É possivel que sem um “close” alguma mudanças não sejam de fato efetivadas no arquivo, elas ficariam apenas em memoria e o programa finalizaria antes de realizar a modificação.
  11. 11. Facilitando a vida● A Classe Scanner surgiu com o Java 5 e sua ideia é facilitar a leitura de informação por um InputStream.● PrintStream possui vários construtores, entre eles
  12. 12. Duvidas?

×