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

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

Linguagens de Programação Fluxo de Dados: Entrada e Saída.

Apresentações semelhantes


Apresentação em tema: "Linguagens de Programação Fluxo de Dados: Entrada e Saída."— Transcrição da apresentação:

1 Linguagens de Programação Fluxo de Dados: Entrada e Saída

2 2 Um Pacotes para E/S zO pacote fornece um grande número de classes para tratar entrada e saída de dados zO pacote java.io fornece um grande número de classes para tratar entrada e saída de dados ytransferência de dados do programa para fontes externas e vice-versa yentrada e saída de dados envolve o uso de fluxos (streams)

3 3 Um Pacotes para E/S zDados sendo enviados para um programa zDados sendo enviados por um programa

4 4 Fluxo de Informações zSequência de bytes que fluem para dentro ou para fora do programa

5 5 Copiando arquivos (P1)–byte streams P1 z FileInputStream in = null; z FileOutputStream out = null; z try { z in = new FileInputStream("ensinamento.txt"); //http://www.cin.ufpe.br/~maod/lpoo/ensinamento.txt z out = new FileOutputStream("outroarquivo.txt"); z int c; z while ((c = in.read()) != -1) { z out.write(c); z } z } finally { z if (in != null) { z in.close(); z } z if (out != null) { z out.close(); z }

6 6 Copiando arquivos zNotar que: yread() retorna um valor inteiro yÉ importante para identificar o fim de arquivo = “-1” ySempre feche as streams yByte streams devem ser usados apenas com entrada/saída de dados primitivos

7 7 Streams zUm stream é uma abstração de um fluxo contínuo de dados em uma única direção zAs classes que manipulam streams podem ser agrupadas em dois tipos: ybyte streams xclasses InputStream e OutputStream ycharacter streams xclasses Reader e Writer

8 8 Character streams zQuando a internacionalização é a prioridade zFaz as adaptações automaticamente zClasses usadas: yReader yWriter yFileReader yFileWriter

9 9 Copiando (P2)–character streams P2 FileReader inputStream = null; FileWriter outputStream = null; try { inputStream = new FileReader(“amizade.txt"); outputStream = new FileWriter(“outroarquivo2.txt"); int c; int c; while ((c = inputStream.read()) != -1) while ((c = inputStream.read()) != -1) { outputStream.write(c); } } { outputStream.write(c); } } finally { if (inputStream != null) { inputStream.close(); } if (outputStream != null) { outputStream.close(); } } } }

10 10 Line-oriented I/O zI/O de caracteres ocorrem em grandes quantidades zI/O orientada a linha de caracteres permite ler uma sequência de caracteres terminada por: ycarriage-return/line-feed sequence(“\r\n”) ycarriage-return(“\r”) yline-feed(“\n”) zClasses usadas yBufferredReader and PrintWriter

11 11 Line-oriented I/O – (P3) P3 z FileReader inputStream = null; z FileWriter outputStream = null; z try { z inputStream = new FileReader("amor.txt"); z outputStream = new FileWriter("arquivo.txt"); z int c; z while ((c = inputStream.read()) != -1) { z outputStream.write(c); z }

12 12 Exercício zSeja o seguinte registro: ynome, idade, sexo, estadoCivil; zUtilizar a entrada/saída de streams de caracteres para criar um programa para gravar em um arquivo os dados formatados do registro acima; zUtilizar a entrada/saída de streams de caracteres para criar um programa para ler de um arquivo os dados formatados gravados em um arquivo;

13 13 A classe Scanner zObjetos da classe Scanner são úteis para formatar entradas separando os campos em “white spaces” y'\u0009' HORIZONTAL TABULATION. y'\u000A', LINE FEED. y'\u000B', VERTICAL TABULATION. y'\u000C', FORM FEED. y'\u000D', CARRIAGE RETURN. zUsando outro delimitador ys.useDelimiter(",\\s*");

14 14 A classe Scanner z Scanner s = null; z try { z s = new Scanner(new BufferedReader(new FileReader("ausencia.txt"))); z // s.useDelimiter(",\\s*"); z while (s.hasNext()) { z System.out.println(s.next()); z } z } finally { z if (s != null) { z s.close(); z }


Carregar ppt "Linguagens de Programação Fluxo de Dados: Entrada e Saída."

Apresentações semelhantes


Anúncios Google