Streams –input e output

Slides:



Advertisements
Apresentações semelhantes
Python: Entrada e Saída
Advertisements

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
Estruturas de Repetição
Redes de computadores II
© Copyright 2008 Algoritmos e Estruturas de Dados IF672ec - Algoritmos e Estruturas de Dados CIn - UFPE { alp4, dnq, dwcs, fmm, jdf2, lfpd, mraga, psbof,
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Entrada e Saída Marco Antonio Arquiteto de Software Dezembro/2007.
Capítulo 1 Introdução.
Comunicação entre processos distribuídos
Tratamento de Exceções
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTRODUÇÃO AOS APLICATIVOS JAVA Prof. Thiago Pereira Rique
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.
Persistência de objetos em arquivo texto usando Java
Streams Java.
Prof. Luis Otavio Alvares
Arquivos Prof: Erivelto Tschoeke, Msc. –
Wagner Santos C. de Jesus
Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos I Material IV-Bimestre Criando um.
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
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
Introdução a Programação JAVA
Estrutura de Dados em 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.
PROGRAMAÇÃO ESTRUTURADA II
Ordenação e Pesquisa de Dados Marco Antonio Montebello Júnior
Linguagem técnica de programação I Java
DAVID ANDERSON CARDOSO DANTAS
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.
By Ducheno Kelly Centro de Formação São Domingos.
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)
ARQUIVOS.
1 JAVA I/O (Entrada e Saída em JAVA) Prof. Alexandre Monteiro Recife.
Profa. Patrícia A. Jaques
Tratamento de ficheiros Abrir e fechar um ficheiro.
Tratamento de Exceções
Programação Orientada a Objetos - Java
Aula Prática 11 Operações com Arquivos Monitoria
Capítulo 6 Exceções.
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
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 Programação de Sockets TCP e UDP Hugo Simões Original por: Flávio.
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Rotinas do BIOS e DOS Serviços de vídeo (INT 10H)
Socket em Java.
PROGRAMAÇÃO Prof.: Bruno Rafael de Oliveira Rodrigues.
Salvando em Arquivos. Arquivos Um arquivo pode estar associado a qualquer dispositivo de entrada e saída, como por exemplo: teclado, video, impressora,
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.
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
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.
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
Programação II Arquivos Autoria: Ernani Santos Modificação: Clebson Oliveira Adaptação: Claudia Boeres.
Arquivos textos (text)
Transcrição da apresentação:

Streams –input e output

streams Stream: uma abstracção para uma “origem” ou “destino” de dados Os bytes “fluem de (input) para” (output) streams Podem representar múltiplas fontes de dados: Ficheiros em disco Outros computadores em rede Páginas web Dispositivos de entrada (teclado, rato, etc.)

Input streams Métodos comuns a todas as “input streams”: int read() throws IOException lê um byte (caracter) de dados void reset() throws IOException inicia a stream para que os seus bytes possam ser lidos novamente void close() throws IOException notifica a stream de que ela vai deixar de ser usada

Output streams Métodos comuns a todas as “input streams”: void write(int n) throws IOException escreve um byte (caracter) de dados void flush() throws IOException escreve os bytes que estavam à espera para ser escritos void close() throws IOException notifica a stream de que de que ela vai deixar de ser usada

Java.io Java.io é o package Java que contém todas as classes que manipulam as entradas e saídas dos programas escritos em Java. A ideia do Java.io é utilizar fluxos de entrada (InputStream) e de saída (OutputStream) para toda e qualquer operação, seja ela relativa a um ficheiro, a uma ligação remota via sockets ou até mesmo a entrada e saída padrão de um programa.

Leitura de ficheiros Abrir um ficheiro para leitura Sintaxe: BufferedReader nomeStreamInput = new BufferedReader(new FileReader(nomeFicheiro)); Exemplo: BufferedReader inStream = new BufferedReader(new FileReader(“in.txt”));

Leitura de ficheiros – exemplo 1 import java.io.*; public class ex1 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new FileReader("arquivo.txt")); String s = br.readLine(); System.out.println(s); } É criado um buffer (BufferedReader) para efectuar a leitura do ficheiro “arquivo.txt” É lida apenas a primeira linha do ficheiro String s = br.readLine(); e guardada na Variável “S”. Se correr o programa vai ocorrer o seguinte erro: Qual o motivo???

Leitura de ficheiros – exemplo 1 O erro ocorre porque o ficheiro ainda não foi criado. Para evitar que o programa pare devido a erros, utilizam-se as excepções try{} e catch{}. Assim, em vez de parar de forma inexplicável, é mostrada uma mensagem de erro. import java.io.*; public class ex1 { public static void main(String[] args) throws IOException { try{ BufferedReader br = new BufferedReader(new FileReader("arquivo.txt")); String s = br.readLine(); System.out.println(s); } catch(IOException e){ System.out.println("O ficheiro não existe!"); System.out.println("Fim do programa!"); } }

Leitura de ficheiros – Exemplo 1 Para que o programa deste exemplo funcione é necessário criar o ficheiro “arquivo.txt”. Procede-se do seguinte modo: Clicar com o botão direito do rato em cima do projecto E escolher New-File. Gravar o ficheiro com o nome “arquivo.txt”. Os ficheiros criados podem ser acedidos na pasta C:\progEcclips\Nome_projecto. Digite “Programação em Java” no ficheiro criado. Pode agora correr o programa. Deve surgir no ecrã a mensagem “Programação em Java”.

Leitura de Ficheiros – Exemplo 2 public class ex3{ public static void main(String[] args){ String nomeFx= "teste.txt"; try { BufferedReader in = new BufferedReader(new FileReader(nomeFx)); String str; while((str = in.readLine()) != null){ System.out.println(str); } in.close(); catch (IOException e){ System.out.println("Impossível ler o ficheiro " + nomeFx); System.out.println("fim do programa..."); System.out.println("Terminou a leitura do ficheiro!!!"); Para ler um ficheiro de texto utilizamos as classes FileReader e BufferedReader do pacote java.io Enquanto existirem linhas no ficheiro, o conteúdo do ficheiro é mostrado no ecrã Se o ficheiro não existir, ocorre o erro. Nota: O ficheiro deve ser criado antes da execução do programa, senão ocorre o erro que se encontra no bloco catch. Após ser efectuada a leitura do ficheiro, este deve ser fechado (in.close()).

Leitura de ficheiros – contagem das linhas de um ficheiro public class contaLinhas{ public static void main(String[] args){ String nomeFx= "novo.txt"; int conta=0; try { BufferedReader in = new BufferedReader(new FileReader(nomeFx)); String str; while((str = in.readLine()) != null){ conta++; } in.close(); catch (IOException e){ System.out.println("Impossível ler o ficheiro " + nomeFx); System.out.println("fim do programa..."); System.out.println("O ficheiro contem " + conta + " linhas"); O ficheiro é percorrido e as linhas vão sendo contadas e guardadas na variável conta

Escrita de Ficheiros Abrir um ficheiro para escrita Sintaxe: BufferedWriter nomeStreamOutput= new BufferedWriter(new FileWriter(nomeFicheiro)); Exemplo: BufferedWriter outStream = new BufferedWriter(new FileWriter(“out.txt”));

Escrita de caracteres num ficheiro de texto - notas Escrita - quando se abre um ficheiro para escrita caso este já exista, o seu conteúdo (anterior) é apagado; senão (como ainda não existia) o ficheiro é criado. Em qualquer caso, a abertura de um ficheiro para escrita (ou o acesso a um ficheiro em modo de escrita) gera um ficheiro vazio.

Escrever String em ficheiro de texto – Exemplo 1 import java.io.*; class escreverFicheiro{ public static void main(String[] args) throws IOException { BufferedWriter bw = new BufferedWriter(new FileWriter("escreverString.txt")); bw.write("Primeiro programa"); bw.close(); System.out.println("Terminou!"); } 1. Criar um buffer para o ficheiro “escreverString.txt” 2. O ficheiro é aberto e nele é escrita a String “Primeiro programa” 3. Depois de efectuadas as operações o ficheiro é fechado

Escrever num ficheiro de texto – Exemplo2 import java.io.*; public class ex2 { public static void main(String [] args) throws IOException { String s, nomeFx= "novo.txt"; BufferedWriter f = null; BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); try { f = new BufferedWriter(new FileWriter(nomeFx)); // abrir o ficheiro de texto } catch(Exception e) {// ocorreu um erro na abertura do ficheiro, logo: System.out.println("Impossível criar o ficheiro " + nomeFx); System.out.println("fim do programa..."); } System.out.println("escrever no ficheiro"); s = in.readLine(); // ler uma linha do teclado while(s.length() > 0) { // termina quando digitar <enter> f.write(s); // escrever a linha no ficheiro f.newLine(); // inserir mudança linha no ficheiro s = in.readLine(); // ler outra linha do teclado f.close(); // fechar o ficheiro System.out.println("O conteúdo foi armazenado no ficheiro " + nomeFx);

Leitura e Escrita de Ficheiros – Exemplo 3 import java.io.*; public class exemplorw { public static void main(String[] args){ String fxL= "textoLeit.txt"; String fxE="textoEscrita.txt"; try { BufferedReader in = new BufferedReader(new FileReader(fxL)); BufferedWriter out = new BufferedWriter(new FileWriter(fxE)); String str; while((str = in.readLine()) != null){ out.write(str); } in.close(); out.close(); System.out.println("Dados transferidos..."); catch (IOException e){ System.out.println("Impossível ler o ficheiro"); } }

Leitura e Escrita de Ficheiros – Exemplo 3 Neste exemplo são criados dois ficheiros um para leitura (BufferedReader in = new BufferedReader(new FileReader(fxL));) e outro para escrita(BufferedWriter out = new BufferedWriter(new FileWriter(fxE));). O ficheiro de leitura deve ser previamente criado, senão ocorre o erro de excepção. Digite no ficheiro o texto ”Leitura e escrita de Ficheiros” O primeiro ficheiro vai ser percorrido linha a linha e enquanto não encontrar uma linha vazia (while((str = in.readLine()) != null), vai escrever as linhas no segundo ficheiro out.write(str); Após as operações realizadas os dois ficheiros vão ser fechados