Streams Java.

Slides:



Advertisements
Apresentações semelhantes
TRATAMENTO DE ARQUIVOS EM C
Advertisements

Python: Entrada e Saída
Programação em Java Prof. Maurício Braga
I/O Carlos Bazilio Depto de Ciência e Tecnologia
Construção de Algoritmos 2
Programação em Java Prof. Maurício Braga
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Entrada e Saída Marco Antonio Arquiteto de Software Dezembro/2007.
Comunicação entre processos distribuídos
Tratamento de Exceções
Ir p/ primeira página Cliente/Servidor Modelo usado para construir aplicações Servidor em número de porta conhecido – Aceita requisições e executa serviços.
Orientação a Objetos: Encapsulamento e Classificação
Persistência de objetos em arquivo texto usando Java
Recursividade Inhaúma Neves Ferraz
Prof. Luis Otavio Alvares
Wagner Santos C. de Jesus
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
Treinamento no GRADEp HelloWorld Args. Slide 2 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - julho 2005 HelloWorld e Args Autoria Autora.
Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:
Tratamento de Ficheiros
Excepções e Streams em Java
Revisão da Linguagem C.
Classes e objetos Arrays e Sobrecarga
Introdução a Programação JAVA
Estrutura de Dados em Java
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Programação Orientada a Objetos com Java
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 – CIn/UFPE Davi Duarte Denyson José Eduardo Souza Ivan França Rafael Lima.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Nazareno Andrade (baseado no material de Hyggo Almeida)
PROGRAMAÇÃO ESTRUTURADA II
JAVA Linguagem Ambiente de Desenvolvimento
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Ordenação e Pesquisa de Dados Marco Antonio Montebello Júnior
Introdução a Programação COM 100
Streams –input e output
Linguagem técnica de programação I Java
DAVID ANDERSON CARDOSO DANTAS
Programação com sockets
Aula Prática 12 Operações com Arquivos Monitoria
Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Arquivo.
1 Introdução a C# Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 15/08/2002 Autor: Marden Menezes Costa.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Stream – Fluxo I/O Sistema de Arquivos
BC-0502 Metodologia e Algoritmos Computacionais Santo André, Abril de Arquivos em Java.
Capítulo 10. Stream – Fluxo I/O  Acessando o sistema de arquivos java.io.File  Gravação em arquivos texto java.io.FileWriter java.io.BufferedWriter.
Stream – Fluxo I/O Manipulação de arquivos texto
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Listas Simplesmente Encadeadas
1 JAVA I/O (Entrada e Saída em JAVA) Prof. Alexandre Monteiro Recife.
Profa. Patrícia A. Jaques
Capítulo V – Comandos de Entrada e Saída 5.1 – Equipamentos de entrada e saída 5.2 – Saída no vídeo-texto 5.3 – Entrada pelo teclado 5.4 – Entrada e saída.
Tratamento de Exceções
Aula Prática 11 Operações com Arquivos Monitoria
CLASSE ARQUIVO Comandos Básicos. Criação da variável Arquivo nomeDoArquivo = new Arquivo ( “nomeDoArquivo.in”, “nomeDoArquivo.out” ); nomeDoArquivo.in.
Estrutura de Controle em JAVA
Operações com Arquivos Monitoria A estrutura FILE  É como um tipo de dado, mas não é um tipo propriamente dito  Definido no arquivo cabeçalho.
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
April 05 Prof. Ismael H. F. Santos - 1 Modulo II – Tópicos em Java - IO Prof. Ismael H F Santos.
Aula Prática 11 Operações com Arquivos Monitoria
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Socket em Java.
Programação Distribuída em Java Aula Na aula passada vimos: I/O Streams Filtros Readers and Writers.
Programação Distribuída em Java Aula Na aula passada vimos: Introdução –O que podemos fazer na rede Conceito de Rede –Máquinas conectadas Protocolos.
Arquivos. Os computadores utilizam os arquivos como estruturas de dados para armazenamento de longo prazo de grandes volumes de dados. Dados mantidos.
© Copyright 2008 Algoritmos e Estruturas de Dados 1 IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Adriana Libório Fernandes Lins Arthur Cavalcanti.
Aula 3. ListView ListView é um componente que mostra uma lista de itens Os itens da lista são automaticamente inseridos usando um adapter, implementado.
Capítulo 10. Stream – Fluxo I/O  Introdução  Principais Exceptions  Arquivos binários java.io.InputStream java.io.FileInputStream java.io.ByteArrayInputStream.
Transcrição da apresentação:

Streams Java

Sumário Streams Emprego Tipos Funcionalidades Data Sink Streams Processing Streams Cadeias de Streams Classes de Streams

Stream Um programa lê / grava informações de / para um canal Em Java, um canal de onde um programa pode ler ou gravar informações é chamado de Stream

Streams Cada canal capaz de gravar em um destino de dados tem um conjunto de métodos de escrita Cada canal capaz de ler a partir de uma fonte de dados tem um conjunto de métodos leitura Quando o stream é criado só temos de invocar esses métodos

Input e Output Streams Input Stream Output Stream

Emprego de Streams Na gravação: Na leitura: construir e abrir um stream enquanto há informações ler as informações fechar stream Na gravação: enquanto há informações para gravar gravar informações

Existem dois tipos de streams: Streams de Bytes (classes *Stream) Streams de Caracteres (classes *Reader ou *Writer)

Cópia de bytes

Cópia de bytes import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class CopyBytes { public static void main(String[] args) throws IOException { FileInputStream in = null; FileOutputStream out = null; try { in = new FileInputStream("xanadu.txt"); out = new FileOutputStream("outagain.txt"); int c; while ((c = in.read()) != -1) { out.write(c); } } finally { if (in != null) { in.close(); if (out != null) { out.close();

Cópia de caracteres import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class CopyCharacters { public static void main(String[] args) throws IOException { FileReader inputStream = null; FileWriter outputStream = null; try { inputStream = new FileReader("xanadu.txt"); outputStream = new FileWriter("characteroutput.txt"); int c; while ((c = inputStream.read()) != -1) { outputStream.write(c); } } finally { if (inputStream != null) { inputStream.close(); if (outputStream != null) { outputStream.close();

Streams Funcionalmente: Data Sink (Sumidouro) Streams - conectados diretamente com a origem ou destino Processing Streams - ligados a outros streams para proporcionar uma maior transparência de processamento (filtragem, compressão, etc.)

Data Sink Streams Classes: FileReader: lê caracteres de um arquivo. FileWriter: grava caracteres em um arquivo. FileInputStream: lê bytes de um arquivo. FileOutputStream: grava bytes em um arquivo. Data Sink Streams têm apenas métodos simples de leitura / gravação Ao criar streams Data Sink temos de especificar a fonte Para arquivos: o nome do arquivo Para a rede: o socket A partir de memória: a localização

Processing Streams Processing Streams Alguns processing streams: Quando se cria um processing stream, temos de especificar a qual stream estará ele ligado Alguns processing streams: DataInputStream, DataOutputStream, BufferedWriter, BufferedReader, etc .. Como fazer: Ligar a um Datastream um FileStream para gravar / ler outros tipos de dados que não sejam bytes Ligar a um BufferStream a um NetworkStream para “bufferizar” o acesso à rede

Cópia de linhas (com bufferização)

Cadeias de Streams Quando tudo estiver configurado e se desejar gravar um número real em um Data Stream (invocar qualquer método de gravar): O programa pede ao data stream para gravar algo O data stream obtém um conjunto de bytes e os grava no buffer stream O buffer stream retém os bytes até que decida a gravá-los, de uma só vez, no file stream O file stream efetivamente grava os bytes no arquivo destino sempre que os receber do buffer stream

Classes de Streams Para cada tipo existe um InputStream (byte) ou Reader (char) e um OutputStream (byte) ou Reader (char) As classes Stream podem ter sub classes Pode-se criar seus próprios streams para serem incluído em uma cadeia Para isto é preciso: Criar o construtor da classe aceitando um Stream Adaptar-se aos métodos de leitura / gravação e implementar as funcionalidades desejadas nesses métodos

Criação de processing streams As classes base partir do qual derivam os novos processing streams são: FilterOutputStream FilterInputStream FilterReader FilterWriter

Classes para acesso a arquivos A classe InputStreamReader le bytes e os decodifica em caracteres Cada invocação do método read() de InputStreamReader's le um ou mais bytes da entrada Para maior eficiência é conveniente “encapar” a classe InputStreamReader por uma classe BufferedReader. BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); A classe RamdomAccessFile permite leitura e gravação de modo aleatório em arquivos de acesso direto Um ponteiro, posicionado pelo método seek(), indica o ponto de leitura

Declaração de classe para acesso direto File file = new File("RandomAccessFileExample.out"); RandomAccessFile raf = new RandomAccessFile(file, "rw"); // Ler primeiro caractere do arquivo byte ch = raf.readByte(); System.out.println(“Ler primeiro caractere: " + (char)ch); // Incluir registro no final do arquivo raf.write(0x0A); raf.writeBytes(“Exemplo terminado");

Exemplos de acessos a arquivos Exemplo 1 (acesso direto) FileInputStream stream = new FileInputStream("../EDIIA32.txt"); InputStreamReader streamReader = new InputStreamReader(stream); BufferedReader reader = new BufferedReader(streamReader); RandomAccessFile raf = new RandomAccessFile (new File("../AcessoDireto.dsk"), "rw"); arq.read(stringData); arq.writeInt(mpr_periodo); Exemplo 2 (acesso seqüencial) private static InputStreamReader is = new InputStreamReader( System.in ); private static BufferedReader br = new BufferedReader( is ); BufferedReader in = new BufferedReader( new InputStreamReader( new FileInputStream ( new File(".\\dados\\ARQ9502.DAT")))); while (in.ready()) { linha = in.readLine();