1 / 17

Streams –input e output

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

kristy
Télécharger la présentation

Streams –input e output

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Streams–input e output

  2. 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.)

  3. Input streams Métodos comuns a todas as “input streams”: • intread() throwsIOException • lê um byte (caracter) de dados • voidreset() throwsIOException • inicia a stream para que os seus bytes possam ser lidos novamente • voidclose() throwsIOException • notifica a stream de que ela vai deixar de ser usada

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

  5. 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.

  6. Leitura de ficheiros Abrir um ficheiro para leitura Sintaxe: BufferedReadernomeStreamInput = newBufferedReader(newFileReader(nomeFicheiro)); • Exemplo: BufferedReaderinStream = newBufferedReader(newFileReader(“in.txt”));

  7. Leitura de ficheiros – exemplo 1 import java.io.*; publicclass ex1 { publicstaticvoid 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???

  8. 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. importjava.io.*; publicclass ex1 { publicstaticvoidmain(String[] args) throwsIOException { try{ BufferedReaderbr = newBufferedReader(newFileReader("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!"); } } }

  9. 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”.

  10. Leitura de Ficheiros – Exemplo 2 Para ler um ficheiro de texto utilizamos as classes FileReader e BufferedReader do pacote java.io publicclass ex3{ publicstaticvoid 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!!!"); } } 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()).

  11. Leitura de ficheiros – contagem das linhas de um ficheiro publicclass contaLinhas{ publicstaticvoid 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

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

  13. 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.

  14. Escrever String em ficheiro de texto – Exemplo 1 import java.io.*; class escreverFicheiro{ publicstaticvoid 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

  15. Escrever num ficheiro de texto – Exemplo2 import java.io.*; publicclass ex2 { publicstaticvoid 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 ficheirodetexto } catch(Exception e) {// ocorreuumerronaabertura 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(); // lerumalinha do teclado while(s.length() > 0) { // terminaquandodigitar <enter> f.write(s); // escrever a linha no ficheiro f.newLine(); // inserirmudançalinha no ficheiro s = in.readLine(); // leroutralinha do teclado } f.close(); // fechar o ficheiro System.out.println("O conteúdo foi armazenado no ficheiro " + nomeFx); } }

  16. Leitura e Escrita de Ficheiros – Exemplo 3 import java.io.*; publicclass exemplorw { publicstaticvoid 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"); } } }

  17. 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

More Related