Reader e Writer para streams de caracteres (texto).



Documentos relacionados
Reader e Writer para streams de caracteres (texto).

Como pôde verificar, a criação de um objecto do tipo File não cria o ficheiro em disco.

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

InputStream e OutputStream para ler/ escrever bytes e das classes abstractas Reader e Writer para ler /escrever caracteres (texto).

Prof. A. G. Silva. 13 de novembro de Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de / 1

Entrada e Saída Exercício. Linguagem Java. Adenilso da Silva Simão 01/09/05

Manipulação de arquivos. João Paulo Q. dos Santos

Hierarquia de classes. Veja as diversas classes do pacote

Streams e Ficheiros I/O

Notas de POO: interfaces, excepções e input/output

Gravação de objetos em arquivos

Programação Java. Entrada & Saída

Motivação. Java First-Tier: Aplicações. Entrada & Saída. Stream de Entrada. Stream de Saída. Pacote java.io. Leitura e Escrita de Streams

Linguagem de programação Arquivos e tratamento de erros

Manipulando Arquivos em Java

Objetivos deste capítulo

Array de objectos Array de objectos Criação Exemplo:

Programação de Computadores II TCC /Turma A 1

Universidade Federal de Pelotas Bacharelado em Ciência da Computação Programação Orientada a Objetos Prof. Gerson Cavalheiro 1/6

10 Arquivos e fluxos. Desenvolvimento OO com Java. Vítor E. Silva Souza

Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC, Programação em Comunicações

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA CONTROLE DE ENTRADA E SAÍDA DE DADOS JAVA.

Manipulação de Arquivos

20/10/15. Arquivos e fluxos. Arquivos. Plataformas e sistemas de arquivo. A classe java.io.file. Modo de operação. Fluxos, leitores e escritores

Arquivos continuação. Profa. Thienne Johnson EACH/USP

Num programa em JAVA é possível definir diferentes sequências de execução independente: Threads.

AULA TEÓRICA 4. Tema 5. Ficheiros. Ficheiro do tipo texto. Ficheiros de Objectos. Ø Classe File Ø Criação. Manipulação. Ø Classe StringTokenizer

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação de Computadores II TCC Profs.: Anselmo Montenegro (1) & Marcos Lage (2) (1) (2)

21/05/2013. Informações Complexas. Arquivos de Texto e Arquivos Binários. Hierarquia de Dados. Armazena Informação. Classificação de Arquivos

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs Aplicações dinâmicas para a Web: HTTP porto 80

Lista de Exercícios Nro. 1 Programação Orientada a Objetos - SCC204

Tratamento de Exceções

RESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos;

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

Paradigmas de Programação. Genéricos

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.

Input / Output na linguagem java. Para isso usamos um dos construtores da classe java.io.file:

1. Estude e implemente a classe Exemplo1 apresentada abaixo:

Programação em FORTRAN V. João Manuel R. S. Tavares

Java Standard Edition (JSE)

[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.

Laboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Sockets: Sumário. Resumo das Propriedades de UDP e de TCP

insfcanceof new public switch transient while byte continue extends for int null

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Projeto V (U900005) Ciências da Computação Projeto II (U900003) Engenharia da Computação Prof. Valdir Gil Pillat

Aula 11 POO 1 Coleções e Arquivos. Profa. Elaine Faria UFU

LINGUAGEM JAVA - RESUMO

Linguagem de programação Java

Programação Orientada a Objeto Java

BC-0505 Processamento da Informação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Programação Orientada por Objectos 2007/2008

Programação Na Web. Servlets: Ciclo de Vida. Agenda. Visão geral sobre ciclo de vida. Nascimento de uma Servlet. Execução de uma Servlet

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

Threads e IO. Sérgio Luiz Ruivace Cerqueira

Módulo 13. Socket. Programação Orientada a Objetos Java (Rone Ilídio)

ção a Objetos em Java

[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.

Capítulo II Modelos de Programação Distribuída

Simulado de Linguagem de Programação Java

Strings e Arrays POO

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

9 Classes Abstractas e Interfaces

Isto não é exequível!... B[8][6] A[10] Slides_Java_4

4 Conceito de Herança

Introdução. Universidade Federal de Uberlândia. Programação Orientada a Objetos. Prof. Fabiano Dorça

Só podem ser executados por uma Thread que detenha o lock do objecto

INTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS

[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.

Interfaces POO. Prof. Marcio Delamaro

Programação Orientada aos Objectos I

Tratamento de Exceções

Vamos imaginar que queremos projetar um jogo em que haja diferentes personagens:

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Linguagem de Programação II Implementação

Programação orientada a objetos em Java

Programação Orientada a Objetos

Streams. Profa. Patrícia A. Jaques Unisinos

Java Avançado. Carga Horária: 32 horas. Conteúdo Programático: Classes. Classes internas; Instância da classe interna; Referências na classe interna;

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Capítulo II Modelos de Programação Distribuída

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO

Utilização das classes Java para comunicação TCP/IP e UDP/IP

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

No final deste curso, saberás criar programas através da linguagem de programação Java.

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Linguagem de Programação III

Conceitos básicos de programação

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Exercícios de Revisão Java Básico

Transcrição:

Folha 1-1 Recordando POO: Streams Uma stream é uma abstracção que representa uma fonte genérica de entrada de dados ou um destino genérico para escrita de dados que é definida independentemente do dispositivo físico concreto. Todas as classes que implementam streams em Java são subclasses das classes abstractas InputStream e OutputStream para streams de bytes e das classes abstractas Streams de caracteres Reader e Writer para streams de caracteres (texto). As subclasses de Writer têm que implementar os métodos definidos nesta classe abstracta, nomeadamente, write(string s), write (int c); write(char[] b); flush(), close(),... Analogamente as subclasses de Reader têm que implementar, entre outros, os métodos int read() int read(char[] c); close(),... As classes FileReader e FileWriter Construtores: FileReader (File file); FileReader (String filename);... FileWriter (File file); FileWriter (String filename);... As classes FileReader e FileWriter permitem-nos respectivamente ler e escrever caracteres em objectos do tipo File. No entanto a leitura e a escrita de um carácter de cada vez não é geralmente a forma mais eficiente de manipular ficheiros de texto. As classes BufferedReader e BufferedWriter possuem métodos para leitura e escrita linha a linha. As classes BufferedReader e BufferedWriter Construtores: BufferedReader (Reader in) BufferedWriter (Writer out) 1 Teste a classe abaixo. public class c1 {

Folha 1-2 public static void main (String args[]){ BufferedWriter bw; bw = new BufferedWriter ( new FileWriter ("d:\\my_work\\teste1.txt")); bw.write( 1 ); bw.newline(); bw.write( 2 ); bw.flush(); bw.close(); catch (IOException e){ System.out.println(e.getMessage()); A principal vantagem da classe BufferedWriter é que esta realiza escritas optimizadas sobre streams (de caracteres) através de um mecanismo de buffering. Os dados vão sendo armazenados num buffer intermédio sendo a escrita na stream de destino apenas efectuada quando se atinge o máximo da capacidade do buffer. Como vimos acima, o construtor da classe BufferedWriter recebe como argumento um objecto da classe Writer, o que significa que uma instância da classe BufferedWriter pode ser definida sobre qualquer subclasse da classe Writer, sempre que for necessário optimizar operações de escrita pouco eficientes. Simetricamente uma classe BufferedReader pode ser definida sobre qualquer subclasse da classe Reader. 2 - Crie uma classe que leia o ficheiro teste1.txt. A classe PrintWriter Construtores: PrintWriter(OutputStream out); PrintWriter(OutputStream out, boolean autoflush) PrintWriter(Writer out); PrintWriter(Writer out, boolean autoflush) As instâncias de PrintWriter podem ser criadas sobre qualquer subclasse de Writer e também sobre uma qualquer stream de bytes (subclasses de OutputStream) Esta classe define os métodos print() e println() que recebem como parâmetro um valor de qualquer tipo simples.

3 Teste a classe abaixo. Folha 1-3 public class c2 { public static void main (String args[]){ PrintWriter pw; pw = new PrintWriter ( new FileWriter ("d:\\my_work\\teste2.txt")); pw.println(2.31); pw.println(false); pw.print("x"); pw.flush(); pw.close(); catch (IOException e){ System.out.println(e.getMessage()); 4 - Crie uma classe que leia o ficheiro teste2.txt. Streams de bytes As subclasses de OutputStream e InputStream implementam Streams de bytes. Os métodos abstractos definidos na classe OutputStream são idênticos aos de Writer com a diferença de que em vez de caracteres aceitam bytes. As classes ObjectInputStream e ObjectOutputStream Construtores: ObjectInputStream(InputStream in) ObjectOutputStream(OutputStream out) Uma ObjectOutputStream permite armazenar objectos através do método writeobject() que implementa um algoritmo de serialização que garante que todas as referências cruzadas existentes entre instâncias de diferentes classes serão repostas aquando do processo de leitura dessas mesmas instâncias. Para que se possam gravar instâncias de uma determinada classe numa ObjectOutputStream é necessário que a classe implemente a interface Serializable. Além disso, todas as variáveis dessa classe terão que ser também serializáveis. Isto significa que todas as variáveis de instância da classe devem por sua vez pertencer a classes serializáveis.

Folha 1-4 Os tipos simples são por definição serializáveis, assim como o são os arrays e as instâncias das classes String, Vector ou ArrayList. 5 Construa uma classe à sua escolha definindo os atributos e construindo os getters e setters de forma automática no netbeans ou procure no seu trabalho de outras disciplinas uma classe já feita a) - Construa um programa de teste que instancie 3 objetos da classe anterior e escreva esses objetos num ficheiro. Use ObjecStreams. b) Construa um programa para ler o ficheiro criado no exercício anterior supondo que não sabe quantos objectos estão no ficheiro. 6 Construa um programa que escreva para um ficheiro uma sequência de linha de texto, introduzidas pelo utilizador. 7 Construa um programa que leia o ficheiro do exercício 6. 8 Construa um programa que construa um array de valores aleatórios do tipo int e os escreva num ficheiro. 9 - Construa um programa que leia o ficheiro do exercício 8. A classe InetAddress 10 O programa abaixo permite-lhe obter o nome da máquina onde está a trabalhar. Implemente-o e explore a classe InetAddress. public class GetName { public static void main (String args[]) throws Exception{ InetAddress host = null; host = InetAddress.getLocalHost(); System.out.println(host.getHostName());

Folha 1-5 11 O programa abaixo permite-lhe obter o endereço IP da máquina onde está a trabalhar. Implemente-o e estude o seu comportamento. public class GetIP { public static void main (String args[]) throws Exception{ InetAddress host = null; host = InetAddress.getLocalHost(); byte ip [] = host.getaddress(); for ( int i= 0 ; i < ip.length; i++){ if (i>0) System.out.print("."); System.out.print(ip[i] & 0xff); System.out.println(); 12 Pretende-se que o programa abaixo, dado um determinado IP, nos diga qual o nome da máquina correspondente. Complete-o. import java.io.*; public class IPtoName { public static void main (String args[] ) throws IOException{ String s=" "; char c; System.out.print("IP address? "); while ( (c=(char)system.in.read())!= 10) s+=c; s=s.trim(); InetAddress address =null; < exercício > catch (UnknownHostException e){ System.out.println("IP malformed "); 13 Construa um programa que dado o nome de uma máquina, nos diga qual o IP correspondente.