Download - Linguagens de Programação
![Page 1: Linguagens de Programação](https://reader036.vdocuments.com.br/reader036/viewer/2022082820/56814bed550346895db8cdf0/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082820/56814bed550346895db8cdf0/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082820/56814bed550346895db8cdf0/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082820/56814bed550346895db8cdf0/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082820/56814bed550346895db8cdf0/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082820/56814bed550346895db8cdf0/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082820/56814bed550346895db8cdf0/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082820/56814bed550346895db8cdf0/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082820/56814bed550346895db8cdf0/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082820/56814bed550346895db8cdf0/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082820/56814bed550346895db8cdf0/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082820/56814bed550346895db8cdf0/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082820/56814bed550346895db8cdf0/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082820/56814bed550346895db8cdf0/html5/thumbnails/14.jpg)
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(); }} }}