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

Linguagens de Programação

  • Upload
    lotte

  • View
    22

  • Download
    0

Embed Size (px)

DESCRIPTION

Linguagens de Programação. Fluxo de Dados: Entrada e Saída. Um Pacotes para E/S. O pacote java.io fornece um grande número de classes para tratar entrada e saída de dados transferência de dados do programa para fontes externas e vice-versa - PowerPoint PPT Presentation

Citation preview

Page 1: Linguagens de Programação

Linguagens de ProgramaçãoLinguagens de Programação

Fluxo de Dados:Fluxo de Dados:

Entrada e SaídaEntrada e Saída

Page 2: Linguagens de Programação

2

Um Pacotes para E/SUm Pacotes para E/S

O pacote O pacote java.io fornece um grande número fornece um grande número de classes para tratar entrada e saída de de classes para tratar entrada e saída de dadosdados transferência de dados do programa para fontes transferência de dados do programa para fontes

externas e vice-versaexternas e vice-versa entrada e saída de dados envolve o uso de fluxos entrada e saída de dados envolve o uso de fluxos

((streamsstreams))

Page 3: Linguagens de Programação

3

Um Pacotes para E/SUm Pacotes para E/S

Dados sendo enviados para um programaDados sendo enviados para um programa

Dados sendo enviados por um programaDados sendo enviados por um programa

Page 4: Linguagens de Programação

4

Fluxo de InformaçõesFluxo de Informações

Sequência de bytes que fluem para Sequência de bytes que fluem para dentro ou para fora do programadentro ou para fora do programa

Page 5: Linguagens de Programação

5

Copiando arquivos (Copiando arquivos (P1P1)–byte streams)–byte streams

FileInputStream in = FileInputStream in = nullnull;; FileOutputStream out = FileOutputStream out = nullnull;; trytry { { in = in = newnew FileInputStream("ensinamento.txt"); //http://www.cin.ufpe.br/~maod/lpoo/ensinamento.txt FileInputStream("ensinamento.txt"); //http://www.cin.ufpe.br/~maod/lpoo/ensinamento.txt out = out = newnew FileOutputStream("outroarquivo.txt"); FileOutputStream("outroarquivo.txt"); intint c; c;

whilewhile ((c = in.read()) != -1) { ((c = in.read()) != -1) { out.write(c);out.write(c); }}

} } finallyfinally { { ifif (in != (in != nullnull) {) { in.close();in.close(); }} ifif (out != (out != nullnull) {) { out.close();out.close(); }} }}

Page 6: Linguagens de Programação

6

Copiando arquivosCopiando arquivos

Notar que:Notar que: read() retorna um valor inteiroread() retorna um valor inteiro É importante para identificar o fim de É importante para identificar o fim de arquivo = “-1”arquivo = “-1”

Sempre feche as streamsSempre feche as streams Byte streams devem ser usados apenas Byte streams devem ser usados apenas com entrada/saída de dados primitivoscom entrada/saída de dados primitivos

Page 7: Linguagens de Programação

7

StreamsStreams

Um Um streamstream é uma abstração de um fluxo é uma abstração de um fluxo contínuo de dados em uma única direçãocontínuo de dados em uma única direção

As classes que manipulam streams podem As classes que manipulam streams podem ser agrupadas em dois tipos:ser agrupadas em dois tipos: byte streamsbyte streams

classes InputStream e OutputStreamclasses InputStream e OutputStream

character streamscharacter streamsclasses Reader e Writerclasses Reader e Writer

Page 8: Linguagens de Programação

8

Character streamsCharacter streams

Quando a internacionalização é a prioridadeQuando a internacionalização é a prioridade Faz as adaptações automaticamenteFaz as adaptações automaticamente Classes usadas:Classes usadas:

ReaderReader WriterWriter FileReaderFileReader FileWriterFileWriter

Page 9: Linguagens de Programação

9

Copiando (Copiando (P2P2)–character streams)–character streams

FileReader inputStream = null; FileReader inputStream = null; FileWriter outputStream = null; FileWriter outputStream = null; try { inputStream = new FileReader(“amizade.txt"); try { inputStream = new FileReader(“amizade.txt");

outputStream = new FileWriter(“outroarquivo2.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) finally { if (inputStream != null)

{ inputStream.close(); } { inputStream.close(); } if (outputStream != null) if (outputStream != null)

{ outputStream.close(); }{ outputStream.close(); }} } } } } }

Page 10: Linguagens de Programação

10

Line-oriented I/OLine-oriented I/O

I/O de caracteres ocorrem em grandes quantidadesI/O de caracteres ocorrem em grandes quantidades I/O orientada a linha de caracteres permite ler uma I/O orientada a linha de caracteres permite ler uma

sequência de caracteres terminada por:sequência de caracteres terminada por: carriage-return/line-feed sequence(“\r\n”)carriage-return/line-feed sequence(“\r\n”) carriage-return(“\r”)carriage-return(“\r”) line-feed(“\n”)line-feed(“\n”)

Classes usadasClasses usadas BufferredReader and PrintWriterBufferredReader and PrintWriter

Page 11: Linguagens de Programação

11

Line-oriented I/O – (Line-oriented I/O – (P3P3)) FileReader inputStream = FileReader inputStream = nullnull;; FileWriter outputStream = FileWriter outputStream = nullnull;;

trytry { { inputStream = inputStream = newnew FileReader("amor.txt"); FileReader("amor.txt"); outputStream = outputStream = newnew FileWriter("arquivo.txt"); FileWriter("arquivo.txt");

intint c; c; whilewhile ((c = inputStream.read()) != -1) { ((c = inputStream.read()) != -1) { outputStream.write(c);outputStream.write(c); }} }}

Page 12: Linguagens de Programação

12

ExercícioExercício

Seja o seguinte registro:Seja o seguinte registro: nome, idade, sexo, estadoCivil;nome, idade, sexo, estadoCivil;

Utilizar a entrada/saída de streams de caracteres Utilizar a entrada/saída de streams de caracteres para criar um programa para gravar em um arquivo para criar um programa para gravar em um arquivo os dados formatados do registro acima;os dados formatados do registro acima;

Utilizar a entrada/saída de streams de caracteres Utilizar a entrada/saída de streams de caracteres para criar um programa para ler de um arquivo os para criar um programa para ler de um arquivo os dados formatados gravados em um arquivo;dados formatados gravados em um arquivo;

Page 13: Linguagens de Programação

13

A classe ScannerA classe Scanner

Objetos da classe Scanner são úteis para formatar Objetos da classe Scanner são úteis para formatar entradas separando os campos em “white spaces”entradas separando os campos em “white spaces” '\u0009' HORIZONTAL TABULATION. '\u0009' HORIZONTAL TABULATION. '\u000A', LINE FEED.'\u000A', LINE FEED. '\u000B', VERTICAL TABULATION. '\u000B', VERTICAL TABULATION. '\u000C', FORM FEED. '\u000C', FORM FEED. '\u000D', CARRIAGE RETURN. '\u000D', CARRIAGE RETURN.

Usando outro delimitadorUsando outro delimitador s.useDelimiter(",\\s*");s.useDelimiter(",\\s*");

Page 14: Linguagens de Programação

14

A classe ScannerA classe Scanner Scanner s = Scanner s = nullnull;; trytry { { s = s = newnew Scanner( Scanner(newnew BufferedReader( BufferedReader(new new

FileReader("ausencia.txt")));FileReader("ausencia.txt"))); // s.useDelimiter(",\\s*");// s.useDelimiter(",\\s*"); whilewhile (s.hasNext()) { (s.hasNext()) { System.System.outout.println(s.next());.println(s.next()); }} } } finallyfinally { { ifif (s != (s != nullnull) {) { s.close();s.close(); }} }}