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

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

Streams –input e output

Apresentações semelhantes


Apresentação em tema: "Streams –input e output"— Transcrição da apresentação:

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”:
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

4 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

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:
BufferedReader nomeStreamInput = new BufferedReader(new FileReader(nomeFicheiro)); Exemplo: BufferedReader inStream = new BufferedReader(new FileReader(“in.txt”));

7 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???

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

11 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

12 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”));

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{ 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

15 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);

16 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"); } }

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


Carregar ppt "Streams –input e output"

Apresentações semelhantes


Anúncios Google