A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "1. 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."— Transcrição da apresentação:

1 1

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

3 I NPUT 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 3

4 O UTPUT 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 4

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

6 L EITURA DE FICHEIROS Abrir um ficheiro para leitura Sintaxe: BufferedReader nomeStreamInput = new BufferedReader ( new FileReader (nomeFicheiro)); Exemplo: BufferedReader inStream = new BufferedReader(new FileReader(in.txt)); 6

7 L EITURA DE FICHEIROS – EXEMPLO 1 7 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???

8 L EITURA DE FICHEIROS – EXEMPLO 1 8 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!"); }

9 L EITURA DE FICHEIROS – E XEMPLO 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 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!!!"); } L EITURA DE F ICHEIROS – E XEMPLO 2 Se o ficheiro não existir, ocorre o erro. 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ã 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 L EITURA 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

12 E SCRITA DE F ICHEIROS Abrir um ficheiro para escrita Sintaxe: BufferedWriter nomeStreamOutput= new BufferedWriter ( new FileWriter (nomeFicheiro)); Exemplo: BufferedWriter outStream = new BufferedWriter(new FileWriter(out.txt));

13 E SCRITA DE CARACTERES NUM FICHEIRO DE TEXTO - NOTAS Escrita 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 E SCREVER S TRING EM FICHEIRO DE TEXTO – E XEMPLO 1 import java.io.*; class escreverFicheiro{ public static void main(String[] args) throws IOException { 1. BufferedWriter bw = new BufferedWriter( new FileWriter("escreverString.txt")); 2. bw.write("Primeiro programa"); 3. 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 E SCREVER NUM FICHEIRO DE TEXTO – E XEMPLO 2 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 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); }

16 L EITURA E E SCRITA DE F ICHEIROS – E XEMPLO 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"); } } }

17 L EITURA E E SCRITA DE F ICHEIROS – E XEMPLO 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


Carregar ppt "1. 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."

Apresentações semelhantes


Anúncios Google