SlideShare uma empresa Scribd logo
Inteligência Artificial Reinaldo Bianchi FEI - Elétrica 2000
7a. Aula Arrays (vetores e matrizes), Entrada e Saída de Dados, Arquivos
Vimos na aula passada Applets Gráficos
Nesta aula veremos: Arrays: Vetores  Matrizes Entrada e saída de dados Arquivos
Arrays (ou Vetores) Um  array  permite o agrupamento de um conjunto de informações em uma única variável. Também conhecido como vetor ou variável indexada. Tem um tamanho definido. Sempre iniciado no valor ‘0’: vet 0  1  2  3  4  5  6  7 a b d n c e h k
Arrays: Declaração Sintaxe: <tipo>[] <nome> = new <tipo>[<tamanho>]; Declarando:   int[] meuArray = new int[10]; String[] fala = new String[20]; Uso:   meuArray[7] = 345;
Arrays: inicialização, etc. Inicializando um array: int[] A = {10, 2, 3, 44, 55}; Tamanho de um array: A.length  = guarda o tamanho Ver exemplo Array.java
Exercício Arrays Multiplique 2 vetores guardados em array de tamanho 3. O primeiro array se chama A, o segundo B. Result =0; For (int i =0;i<3;i++)   Result = Result + A[i]* B[i];
Arrays de duas dimensões:  Matrizes Matrizes são  arrays  com DUAS dimensões: Podem ser vistos como  tabelas  que são guardadas na memória Imagens Sintaxe: <tipo> <nome>[][] = new <tipo>  [<linhas>][<colunas>]; Existem  arrays  com mais dimensões...
Matriz - Exemplo int matriz[][] = new int [10][5];
Inicializando matrizes int minhamatriz[][] =  { {1,   2,  3,  4}, {5,  6,  7,  8}, {9,  10, 11, 12}, {13, 14, 15, 16} };
Programa Exemplo Ver programa ImprimeMatriz.java Insira dados nas posições: linha = 7, coluna = 3 linha = 3, coluna = 0 linha = 5, coluna = 4 Modifique o programa para imprimir a matriz “bonitinha” (isto é, cada linha na sua)
Exercício Faça um programa que multiplique duas matrizes quadradas de tamanho 3
Entrada e Saída de Dados Em Java toda entrada e saída de dados é realizada através de Streams: trabalha com diversos dispositivos: teclado: BufferedReader teclado = new BufferedReader(new Input Stream Reader(System.in)); arquivos páginas web, ...
Classes básicas para tratamento de entrada e saída em Java File: É uma classe para guardar informações sobre os arquivos InputStream: Classe para a leitura dos dados. OutputStream: Classe para escrita de dados. RandomAccessFile: Classe para arquivos de acesso aleatório.
Arquivos Usados para guardar dados permanentes em disco (óbvio). Existem diversos tipos de arquivos: Arquivos seqüenciais (Stream based). Arquivos de acesso aleatório.  Em Java, Streams são usadas para tratar os arquivos seqüenciais: Streams são usados como buffers de entrada e saída para os arquivos.
Hierarquia de classes java.io class java.io.File  class java.io.InputStream class java.io.ByteArrayInputStream class java.io.FileInputStream class java.io.FilterInputStream class java.io.BufferedInputStream class java.io.DataInputStream  class java.io.ObjectInputStream
Hierarquia de classes java.io (continuação) class java.io.OutputStream class java.io.ByteArrayOutputStream class java.io.FileOutputStream class java.io.FilterOutputStream class java.io.BufferedOutputStream class java.io.DataOutputStream (implements java.io.DataOutput) class java.io.PrintStream class java.io.ObjectOutputStream class java.io.RandomAccessFile
Classe File Representação abstrata e independente de plataforma de um arquivo. Guarda informações sobre os arquivos: nome localização do arquivo Manipula arquivos: cria, deleta, copia, compara, verifica existência de um arquivo, cria diretórios, lista diretórios, ...
Classe InputStream Classe abstrata da qual derivam todas as classes para leitura de dados Classe  FileInputStream : Sub-classe de InputStream que dá acesso aos arquivos. Implementa InputStream. Todo tratamento de entrada e saída é feito entre um  try ... catch
Métodos básicos do InputStream read (): Lê um inteiro. Retorna -1 quando chega ao final da stream de entrada (que pode ser o arquivo). read(byte b[]): Lê múltiplos bytes e os guarda em um array. available(): Retorna a quantidade de dados ainda existentes  skip(long): Salta n bytes da entrada e os descarta  close(): Fecha o arquivo (chamado automaticamente)
Exemplo Para abrir um arquivo: InputStream is = new  FileInputStream (&quot;bytedata.dat&quot;); Cria-se um Stream de entrada que usa o FileInputStream para abrir o arquivo. Para ler um dado: b = is.read(); Exemplos LeByte.java  e LeTexto.java
Classe DataInputStream Sub-Classe de InputStream para ler dados genéricos. Possui métodos que lêem e convertem automaticamente diversos tipos de dados. Usado em conjunto com InputStream: InputStream is = new FileInputStream(&quot;textfile.txt&quot;); DataInputStream ds = new DataInputStream(is); Ver LeLinha.java
Métodos do DataInputStream boolean readBoolean(); byte readByte(); char readChar(); int readInt(); float readFloat(); Stream readLine(); ...
Classe OutputStream Classe básica para saída de dados. Contraparte da classe InputStream. FileOutputStream : Sub-classe de OutputStream que dá acesso aos arquivos. DataOutputStream: Idem da DataInputStream para saída de dados.
Métodos do OutputStream write (b): Escreve um inteiro.  write (byte b[]): Escreve múltiplos bytes de um array. flush(): Força a escrita de dados que podem estar em buffers.  close(): Fecha o arquivo (deve ser chamado manualmente, se não pode-se perder dados)
Exemplo Para abrir um arquivo: FileOutputStream os = new  FileOutputStream (&quot;bytedata.dat”);  Cria-se um Stream de saída que usa o FileOutputStream para abrir o arquivo. Para escrever um dado: os.write(dado); Exemplos EscreveBytes.java e EscreveDataStream
Buffered Streams Usados para entrada e saída de dados bufferizadas: Buffer significa que os dados são guardados na memória até que se tenha uma certa quantidade, quando então os dados são escritos ou lidos Classes: BufferedInputStream BufferedOutputStream
Arquivos de Acesso Aleatório Arquivos que permitem o acesso de um dado específico do arquivo Funciona como um array em disco:  define-se um índice e se pode ler ou escrever naquele lugar. Usados para implementar qualquer base de dados decente. Implementado com a classe RandomAccessFile
Classe RandomAccessFile Implementa os arquivos de acesso aleatório em Java. Sub classe direta de Object. Mais poderosa que as classes FileInputStream e FileOutputStream.  Implementa métodos de leitura, escrita e posicionamento para todos os tipos primitivos.
Abrindo um arquivo aleatóreo Esta classe possui 2 construtores: RandomAccessFile(String nome, String  modo ) RandomAccessFile(File file, String  modo ).  O parâmetro  modo  indica como o arquivo poderá ser utilizado: se for &quot;r&quot;: arquivo só de leitura. &quot;rw”: arquivo de leitura e escrita.
Métodos mais importantes seek(): move um ponteiro que define onde será realizada a leitura ou a escrita para um novo ponto no arquivo  lenght(): retorna o tamanho do arquivo em bytes. getFilePointer(): descobre onde está o ponteiro no arquivo. close()
Métodos de Leitura read() método básico de leitura de bytes readFloat(float v): Lê um float de 4 bytes no arquivo  readInt(int v): lê um inteiro de 4 bytes no arquivo readLong(long v) lê um inteiro de 8 bytes no arquivo readShort(int v):  lê inteiro de 2 bytes
Métodos de Escrita write(): método básico de escrita de bytes. writeFloat(float v): Guarda um float de 4 bytes no arquivo usando a função floatToIntBitsmethod  writeInt(int v): escreve um inteiro de 4 bytes no arquivo writeLong(long v) escreve um inteiro de 8 bytes no arquivo
Leitura e escrita de Strings String readLine(): lê uma linha do arquivo (terminada com “\n” e retorna para uma String. String readUTF(): lê uma string do tipo UFT. writeChars(String s) escreve a string s no arquivo. writeUTF(String str): escreve a String como UFT.
Exemplo RandomFile.java: Escreve e Lê números inteiros de um arquivo.
Bancos de dados complexos  Para aplicações de bancos de dados mais complexos, em Java se utiliza: JDBC: permite ligar o programa Java a um banco de dados SQL, DB2, ... Java DataExpress dbSwing etc... Opção meio porca:serialização de objetos.
Conclusão Arrays: Vetores Matrizes Arquivos: FileInputStream FileOutputStream RandomAccessFile

Mais conteúdo relacionado

PPT
Ficheiros em JAVA
PPT
Ficheiros texto
PPTX
Java: Manipulação de Arquivos
PPT
Java Básico :: Stream
PDF
Introdução a Java IO
PDF
Java recursos avançados - streams
PDF
Java recursos avançados - filters
Ficheiros em JAVA
Ficheiros texto
Java: Manipulação de Arquivos
Java Básico :: Stream
Introdução a Java IO
Java recursos avançados - streams
Java recursos avançados - filters

Mais procurados (19)

PDF
Java recursos avançados - multithreading
PDF
Python for zombies (very basic level)
PDF
Curso de Python e Django
PDF
Python e django na prática
PDF
Programando com Python
PDF
Curso básico de Algoritmos com Python
PDF
Curso de Python (Básico) - Português
PPTX
2016/01/27 - Aprendendo a programar com Python
PPTX
Introdução a linguagem C# (CSharp)
PDF
Python - Introdução
PDF
F I C+ + L P 05
PDF
Python - Guia de bolso
ODP
Python: programação divertida novamente
PDF
Java introdução ao java
PDF
TWP38 Revisão Geral 2
PDF
Introdução a estruturas de dados em python
Java recursos avançados - multithreading
Python for zombies (very basic level)
Curso de Python e Django
Python e django na prática
Programando com Python
Curso básico de Algoritmos com Python
Curso de Python (Básico) - Português
2016/01/27 - Aprendendo a programar com Python
Introdução a linguagem C# (CSharp)
Python - Introdução
F I C+ + L P 05
Python - Guia de bolso
Python: programação divertida novamente
Java introdução ao java
TWP38 Revisão Geral 2
Introdução a estruturas de dados em python
Anúncio

Semelhante a http://www.dm.ufscar.br/~waldeck/curso/java/ (20)

PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PDF
Entrada e Saída
PDF
Filestream sistema arquivos
PDF
013 programando em python - arquivos
PDF
1 exercicio funcoes com string e manipulacao com arquivo
PDF
java.io - fluxos (streams) e arquivos
PPTX
Algoritmos - Aula 16 B - Arquivos
ODP
Workshop Python.2
PDF
Arquivos, Fluxos e Serialização de Objetos em Java
PDF
Java 05
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Programando em python arquivos
PDF
Arquivos manipulação entrada saída em java
PPTX
Apresentação java io
PDF
String e IO
PPTX
Criando e Lendo Arquivos TXT com a Classe File
PPT
55 New Things in Java 7 - Brazil
PDF
Estrutura de dados ii
PDF
Aula Persistência 01 (Java)
PDF
Escrever e ler arquivos com java
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Entrada e Saída
Filestream sistema arquivos
013 programando em python - arquivos
1 exercicio funcoes com string e manipulacao com arquivo
java.io - fluxos (streams) e arquivos
Algoritmos - Aula 16 B - Arquivos
Workshop Python.2
Arquivos, Fluxos e Serialização de Objetos em Java
Java 05
Aula 18 - Manipulacao De Arquivos python
Programando em python arquivos
Arquivos manipulação entrada saída em java
Apresentação java io
String e IO
Criando e Lendo Arquivos TXT com a Classe File
55 New Things in Java 7 - Brazil
Estrutura de dados ii
Aula Persistência 01 (Java)
Escrever e ler arquivos com java
Anúncio

Mais de Rodrigo Vieira (17)

PPT
Padariapampulha
PPS
Seja idiota Jabor
PPS
Pessoas Especiais
PPS
Sorria Sempre
PPS
Temperamentos _Sathler
PPT
Padariapampulha
PPT
Padariapampulha
PPT
http://www.dm.ufscar.br/~waldeck/curso/java/
PPT
http://www.dm.ufscar.br/~waldeck/curso/java/
PPT
http://www.dm.ufscar.br/~waldeck/curso/java/
PPT
PPS
So no orkut
PPS
Eramos Felizes e não sabiamos
PPT
Tortas Padaria Pampulha
PPT
Padariapampulha
Seja idiota Jabor
Pessoas Especiais
Sorria Sempre
Temperamentos _Sathler
Padariapampulha
Padariapampulha
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
So no orkut
Eramos Felizes e não sabiamos
Tortas Padaria Pampulha

Último (11)

PPTX
Mecânico de Manutenção de Equipamentos.pptx
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Eng. Software - pontos essenciais para o início
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Utilizando code blockes por andre backes
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Mecânico de Manutenção de Equipamentos.pptx
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Eng. Software - pontos essenciais para o início
Manejo integrado de pragas na cultura do algodão
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Arquitetura de computadores - Memórias Secundárias
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Utilizando code blockes por andre backes
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Viasol Energia Solar -Soluções para geração e economia de energia
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf

http://www.dm.ufscar.br/~waldeck/curso/java/

  • 1. Inteligência Artificial Reinaldo Bianchi FEI - Elétrica 2000
  • 2. 7a. Aula Arrays (vetores e matrizes), Entrada e Saída de Dados, Arquivos
  • 3. Vimos na aula passada Applets Gráficos
  • 4. Nesta aula veremos: Arrays: Vetores Matrizes Entrada e saída de dados Arquivos
  • 5. Arrays (ou Vetores) Um array permite o agrupamento de um conjunto de informações em uma única variável. Também conhecido como vetor ou variável indexada. Tem um tamanho definido. Sempre iniciado no valor ‘0’: vet 0 1 2 3 4 5 6 7 a b d n c e h k
  • 6. Arrays: Declaração Sintaxe: <tipo>[] <nome> = new <tipo>[<tamanho>]; Declarando: int[] meuArray = new int[10]; String[] fala = new String[20]; Uso: meuArray[7] = 345;
  • 7. Arrays: inicialização, etc. Inicializando um array: int[] A = {10, 2, 3, 44, 55}; Tamanho de um array: A.length = guarda o tamanho Ver exemplo Array.java
  • 8. Exercício Arrays Multiplique 2 vetores guardados em array de tamanho 3. O primeiro array se chama A, o segundo B. Result =0; For (int i =0;i<3;i++) Result = Result + A[i]* B[i];
  • 9. Arrays de duas dimensões: Matrizes Matrizes são arrays com DUAS dimensões: Podem ser vistos como tabelas que são guardadas na memória Imagens Sintaxe: <tipo> <nome>[][] = new <tipo> [<linhas>][<colunas>]; Existem arrays com mais dimensões...
  • 10. Matriz - Exemplo int matriz[][] = new int [10][5];
  • 11. Inicializando matrizes int minhamatriz[][] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16} };
  • 12. Programa Exemplo Ver programa ImprimeMatriz.java Insira dados nas posições: linha = 7, coluna = 3 linha = 3, coluna = 0 linha = 5, coluna = 4 Modifique o programa para imprimir a matriz “bonitinha” (isto é, cada linha na sua)
  • 13. Exercício Faça um programa que multiplique duas matrizes quadradas de tamanho 3
  • 14. Entrada e Saída de Dados Em Java toda entrada e saída de dados é realizada através de Streams: trabalha com diversos dispositivos: teclado: BufferedReader teclado = new BufferedReader(new Input Stream Reader(System.in)); arquivos páginas web, ...
  • 15. Classes básicas para tratamento de entrada e saída em Java File: É uma classe para guardar informações sobre os arquivos InputStream: Classe para a leitura dos dados. OutputStream: Classe para escrita de dados. RandomAccessFile: Classe para arquivos de acesso aleatório.
  • 16. Arquivos Usados para guardar dados permanentes em disco (óbvio). Existem diversos tipos de arquivos: Arquivos seqüenciais (Stream based). Arquivos de acesso aleatório. Em Java, Streams são usadas para tratar os arquivos seqüenciais: Streams são usados como buffers de entrada e saída para os arquivos.
  • 17. Hierarquia de classes java.io class java.io.File class java.io.InputStream class java.io.ByteArrayInputStream class java.io.FileInputStream class java.io.FilterInputStream class java.io.BufferedInputStream class java.io.DataInputStream class java.io.ObjectInputStream
  • 18. Hierarquia de classes java.io (continuação) class java.io.OutputStream class java.io.ByteArrayOutputStream class java.io.FileOutputStream class java.io.FilterOutputStream class java.io.BufferedOutputStream class java.io.DataOutputStream (implements java.io.DataOutput) class java.io.PrintStream class java.io.ObjectOutputStream class java.io.RandomAccessFile
  • 19. Classe File Representação abstrata e independente de plataforma de um arquivo. Guarda informações sobre os arquivos: nome localização do arquivo Manipula arquivos: cria, deleta, copia, compara, verifica existência de um arquivo, cria diretórios, lista diretórios, ...
  • 20. Classe InputStream Classe abstrata da qual derivam todas as classes para leitura de dados Classe FileInputStream : Sub-classe de InputStream que dá acesso aos arquivos. Implementa InputStream. Todo tratamento de entrada e saída é feito entre um try ... catch
  • 21. Métodos básicos do InputStream read (): Lê um inteiro. Retorna -1 quando chega ao final da stream de entrada (que pode ser o arquivo). read(byte b[]): Lê múltiplos bytes e os guarda em um array. available(): Retorna a quantidade de dados ainda existentes skip(long): Salta n bytes da entrada e os descarta close(): Fecha o arquivo (chamado automaticamente)
  • 22. Exemplo Para abrir um arquivo: InputStream is = new FileInputStream (&quot;bytedata.dat&quot;); Cria-se um Stream de entrada que usa o FileInputStream para abrir o arquivo. Para ler um dado: b = is.read(); Exemplos LeByte.java e LeTexto.java
  • 23. Classe DataInputStream Sub-Classe de InputStream para ler dados genéricos. Possui métodos que lêem e convertem automaticamente diversos tipos de dados. Usado em conjunto com InputStream: InputStream is = new FileInputStream(&quot;textfile.txt&quot;); DataInputStream ds = new DataInputStream(is); Ver LeLinha.java
  • 24. Métodos do DataInputStream boolean readBoolean(); byte readByte(); char readChar(); int readInt(); float readFloat(); Stream readLine(); ...
  • 25. Classe OutputStream Classe básica para saída de dados. Contraparte da classe InputStream. FileOutputStream : Sub-classe de OutputStream que dá acesso aos arquivos. DataOutputStream: Idem da DataInputStream para saída de dados.
  • 26. Métodos do OutputStream write (b): Escreve um inteiro. write (byte b[]): Escreve múltiplos bytes de um array. flush(): Força a escrita de dados que podem estar em buffers. close(): Fecha o arquivo (deve ser chamado manualmente, se não pode-se perder dados)
  • 27. Exemplo Para abrir um arquivo: FileOutputStream os = new FileOutputStream (&quot;bytedata.dat”); Cria-se um Stream de saída que usa o FileOutputStream para abrir o arquivo. Para escrever um dado: os.write(dado); Exemplos EscreveBytes.java e EscreveDataStream
  • 28. Buffered Streams Usados para entrada e saída de dados bufferizadas: Buffer significa que os dados são guardados na memória até que se tenha uma certa quantidade, quando então os dados são escritos ou lidos Classes: BufferedInputStream BufferedOutputStream
  • 29. Arquivos de Acesso Aleatório Arquivos que permitem o acesso de um dado específico do arquivo Funciona como um array em disco: define-se um índice e se pode ler ou escrever naquele lugar. Usados para implementar qualquer base de dados decente. Implementado com a classe RandomAccessFile
  • 30. Classe RandomAccessFile Implementa os arquivos de acesso aleatório em Java. Sub classe direta de Object. Mais poderosa que as classes FileInputStream e FileOutputStream. Implementa métodos de leitura, escrita e posicionamento para todos os tipos primitivos.
  • 31. Abrindo um arquivo aleatóreo Esta classe possui 2 construtores: RandomAccessFile(String nome, String modo ) RandomAccessFile(File file, String modo ). O parâmetro modo indica como o arquivo poderá ser utilizado: se for &quot;r&quot;: arquivo só de leitura. &quot;rw”: arquivo de leitura e escrita.
  • 32. Métodos mais importantes seek(): move um ponteiro que define onde será realizada a leitura ou a escrita para um novo ponto no arquivo lenght(): retorna o tamanho do arquivo em bytes. getFilePointer(): descobre onde está o ponteiro no arquivo. close()
  • 33. Métodos de Leitura read() método básico de leitura de bytes readFloat(float v): Lê um float de 4 bytes no arquivo readInt(int v): lê um inteiro de 4 bytes no arquivo readLong(long v) lê um inteiro de 8 bytes no arquivo readShort(int v): lê inteiro de 2 bytes
  • 34. Métodos de Escrita write(): método básico de escrita de bytes. writeFloat(float v): Guarda um float de 4 bytes no arquivo usando a função floatToIntBitsmethod writeInt(int v): escreve um inteiro de 4 bytes no arquivo writeLong(long v) escreve um inteiro de 8 bytes no arquivo
  • 35. Leitura e escrita de Strings String readLine(): lê uma linha do arquivo (terminada com “\n” e retorna para uma String. String readUTF(): lê uma string do tipo UFT. writeChars(String s) escreve a string s no arquivo. writeUTF(String str): escreve a String como UFT.
  • 36. Exemplo RandomFile.java: Escreve e Lê números inteiros de um arquivo.
  • 37. Bancos de dados complexos Para aplicações de bancos de dados mais complexos, em Java se utiliza: JDBC: permite ligar o programa Java a um banco de dados SQL, DB2, ... Java DataExpress dbSwing etc... Opção meio porca:serialização de objetos.
  • 38. Conclusão Arrays: Vetores Matrizes Arquivos: FileInputStream FileOutputStream RandomAccessFile