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 “” 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

Mais procurados

Java recursos avançados - multithreading
Java   recursos avançados - multithreadingJava   recursos avançados - multithreading
Java recursos avançados - multithreading
Armando Daniel
 
Java 15
Java 15Java 15
Python for zombies (very basic level)
Python for zombies (very basic level)Python for zombies (very basic level)
Python for zombies (very basic level)
FATEC São José dos Campos
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
Osvaldo Santana Neto
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
Rafael Cassau
 
Java 13
Java 13Java 13
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
Diemesleno Souza Carvalho
 
Java9
Java9Java9
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
Giancarlo Silva
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - Português
Helio Colombe
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python
Jardel Weyrich
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
Marcos Castro
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
fabiocerqueira
 
F I C+ + L P 05
F I C+ + L P 05F I C+ + L P 05
F I C+ + L P 05
t34m0nana
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
Jean Lopes
 
Python: programação divertida novamente
Python: programação divertida novamentePython: programação divertida novamente
Python: programação divertida novamente
Rodrigo Amaral
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
Armando Daniel
 
TWP38 Revisão Geral 2
TWP38 Revisão Geral 2TWP38 Revisão Geral 2
TWP38 Revisão Geral 2
FATEC São José dos Campos
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
Alvaro Oliveira
 

Mais procurados (19)

Java recursos avançados - multithreading
Java   recursos avançados - multithreadingJava   recursos avançados - multithreading
Java recursos avançados - multithreading
 
Java 15
Java 15Java 15
Java 15
 
Python for zombies (very basic level)
Python for zombies (very basic level)Python for zombies (very basic level)
Python for zombies (very basic level)
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Java 13
Java 13Java 13
Java 13
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
Java9
Java9Java9
Java9
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - Português
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
F I C+ + L P 05
F I C+ + L P 05F I C+ + L P 05
F I C+ + L P 05
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Python: programação divertida novamente
Python: programação divertida novamentePython: programação divertida novamente
Python: programação divertida novamente
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
TWP38 Revisão Geral 2
TWP38 Revisão Geral 2TWP38 Revisão Geral 2
TWP38 Revisão Geral 2
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 

Destaque

Hipermída Adaptativa para avaliação
Hipermída Adaptativa para avaliaçãoHipermída Adaptativa para avaliação
Hipermída Adaptativa para avaliação
wallyvianna
 
Brisbane WALKOUT AGAINST BUSH Sept 5, 2007
Brisbane WALKOUT AGAINST BUSH Sept 5, 2007Brisbane WALKOUT AGAINST BUSH Sept 5, 2007
Brisbane WALKOUT AGAINST BUSH Sept 5, 2007
Ratbag Media
 
ONE ON ONE English Tutor
ONE ON ONE English TutorONE ON ONE English Tutor
ONE ON ONE English Tutor
markenglish
 
Running in Korea - IAU 100k
Running in Korea - IAU 100kRunning in Korea - IAU 100k
Running in Korea - IAU 100k
David Deubelbeiss
 
Clase 6, 5/9/2007
Clase 6, 5/9/2007Clase 6, 5/9/2007
Clase 6, 5/9/2007
Christian Sifaqui
 
Trabajodedomputacion(Antenacaseradewifi)
Trabajodedomputacion(Antenacaseradewifi)Trabajodedomputacion(Antenacaseradewifi)
Trabajodedomputacion(Antenacaseradewifi)
guestb09467
 

Destaque (6)

Hipermída Adaptativa para avaliação
Hipermída Adaptativa para avaliaçãoHipermída Adaptativa para avaliação
Hipermída Adaptativa para avaliação
 
Brisbane WALKOUT AGAINST BUSH Sept 5, 2007
Brisbane WALKOUT AGAINST BUSH Sept 5, 2007Brisbane WALKOUT AGAINST BUSH Sept 5, 2007
Brisbane WALKOUT AGAINST BUSH Sept 5, 2007
 
ONE ON ONE English Tutor
ONE ON ONE English TutorONE ON ONE English Tutor
ONE ON ONE English Tutor
 
Running in Korea - IAU 100k
Running in Korea - IAU 100kRunning in Korea - IAU 100k
Running in Korea - IAU 100k
 
Clase 6, 5/9/2007
Clase 6, 5/9/2007Clase 6, 5/9/2007
Clase 6, 5/9/2007
 
Trabajodedomputacion(Antenacaseradewifi)
Trabajodedomputacion(Antenacaseradewifi)Trabajodedomputacion(Antenacaseradewifi)
Trabajodedomputacion(Antenacaseradewifi)
 

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

Entrada e Saída
Entrada e SaídaEntrada e Saída
Entrada e Saída
Denis L Presciliano
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivos
Tiago
 
013 programando em python - arquivos
013   programando em python - arquivos013   programando em python - arquivos
013 programando em python - arquivos
Leandro Barbosa
 
1 exercicio funcoes com string e manipulacao com arquivo
1 exercicio  funcoes com string e manipulacao com arquivo1 exercicio  funcoes com string e manipulacao com arquivo
1 exercicio funcoes com string e manipulacao com arquivo
Kievnny Mendonca
 
java.io - fluxos (streams) e arquivos
java.io - fluxos (streams) e arquivosjava.io - fluxos (streams) e arquivos
java.io - fluxos (streams) e arquivos
Marcello Thiry
 
Algoritmos - Aula 16 B - Arquivos
Algoritmos - Aula 16 B - ArquivosAlgoritmos - Aula 16 B - Arquivos
Algoritmos - Aula 16 B - Arquivos
Rodrigo Kiyoshi Saito
 
Workshop Python.2
Workshop Python.2Workshop Python.2
Workshop Python.2
Marcelo Lira
 
Arquivos, Fluxos e Serialização de Objetos em Java
Arquivos, Fluxos e Serialização de Objetos em JavaArquivos, Fluxos e Serialização de Objetos em Java
Arquivos, Fluxos e Serialização de Objetos em Java
Wilson Júnior
 
Java 05
Java 05Java 05
Java 05
samuelthiago
 
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Os Fantasmas !
 
Programando em python arquivos
Programando em python   arquivosProgramando em python   arquivos
Programando em python arquivos
samuelthiago
 
Apresentação java io
Apresentação java ioApresentação java io
Apresentação java io
Silvino Neto
 
String e IO
String e IOString e IO
String e IO
Elenilson Vieira
 
Criando e Lendo Arquivos TXT com a Classe File
Criando e Lendo Arquivos TXT com a Classe FileCriando e Lendo Arquivos TXT com a Classe File
Criando e Lendo Arquivos TXT com a Classe File
Paulo Brito
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil
Stephen Chin
 
Estrutura de dados ii
Estrutura de dados iiEstrutura de dados ii
Estrutura de dados ii
Juliane Marinho
 
Aula Persistência 01 (Java)
Aula Persistência 01 (Java)Aula Persistência 01 (Java)
Aula Persistência 01 (Java)
Fabio Moura Pereira
 
Escrever e ler arquivos com java
Escrever e ler arquivos com javaEscrever e ler arquivos com java
Escrever e ler arquivos com java
MoisesInacio
 
Java Desktop
Java DesktopJava Desktop
Java Desktop
ciceroclc
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo Tutorial
Fabio Spanhol
 

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

Entrada e Saída
Entrada e SaídaEntrada e Saída
Entrada e Saída
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivos
 
013 programando em python - arquivos
013   programando em python - arquivos013   programando em python - arquivos
013 programando em python - arquivos
 
1 exercicio funcoes com string e manipulacao com arquivo
1 exercicio  funcoes com string e manipulacao com arquivo1 exercicio  funcoes com string e manipulacao com arquivo
1 exercicio funcoes com string e manipulacao com arquivo
 
java.io - fluxos (streams) e arquivos
java.io - fluxos (streams) e arquivosjava.io - fluxos (streams) e arquivos
java.io - fluxos (streams) e arquivos
 
Algoritmos - Aula 16 B - Arquivos
Algoritmos - Aula 16 B - ArquivosAlgoritmos - Aula 16 B - Arquivos
Algoritmos - Aula 16 B - Arquivos
 
Workshop Python.2
Workshop Python.2Workshop Python.2
Workshop Python.2
 
Arquivos, Fluxos e Serialização de Objetos em Java
Arquivos, Fluxos e Serialização de Objetos em JavaArquivos, Fluxos e Serialização de Objetos em Java
Arquivos, Fluxos e Serialização de Objetos em Java
 
Java 05
Java 05Java 05
Java 05
 
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Programando em python arquivos
Programando em python   arquivosProgramando em python   arquivos
Programando em python arquivos
 
Apresentação java io
Apresentação java ioApresentação java io
Apresentação java io
 
String e IO
String e IOString e IO
String e IO
 
Criando e Lendo Arquivos TXT com a Classe File
Criando e Lendo Arquivos TXT com a Classe FileCriando e Lendo Arquivos TXT com a Classe File
Criando e Lendo Arquivos TXT com a Classe File
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil
 
Estrutura de dados ii
Estrutura de dados iiEstrutura de dados ii
Estrutura de dados ii
 
Aula Persistência 01 (Java)
Aula Persistência 01 (Java)Aula Persistência 01 (Java)
Aula Persistência 01 (Java)
 
Escrever e ler arquivos com java
Escrever e ler arquivos com javaEscrever e ler arquivos com java
Escrever e ler arquivos com java
 
Java Desktop
Java DesktopJava Desktop
Java Desktop
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo Tutorial
 

Mais de Rodrigo Vieira

Padariapampulha
PadariapampulhaPadariapampulha
Padariapampulha
Rodrigo Vieira
 
Seja idiota Jabor
Seja idiota JaborSeja idiota Jabor
Seja idiota Jabor
Rodrigo Vieira
 
Pessoas Especiais
Pessoas EspeciaisPessoas Especiais
Pessoas Especiais
Rodrigo Vieira
 
Sorria Sempre
Sorria SempreSorria Sempre
Sorria Sempre
Rodrigo Vieira
 
Temperamentos _Sathler
Temperamentos _SathlerTemperamentos _Sathler
Temperamentos _Sathler
Rodrigo Vieira
 
Padariapampulha
PadariapampulhaPadariapampulha
Padariapampulha
Rodrigo Vieira
 
Padariapampulha
PadariapampulhaPadariapampulha
Padariapampulha
Rodrigo Vieira
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
Rodrigo Vieira
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
Rodrigo Vieira
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
Rodrigo Vieira
 
v
vv
ptt
pttptt
So no orkut
So no orkutSo no orkut
So no orkut
Rodrigo Vieira
 
Eramos Felizes e não sabiamos
Eramos Felizes e não sabiamosEramos Felizes e não sabiamos
Eramos Felizes e não sabiamos
Rodrigo Vieira
 
Tortas Padaria Pampulha
Tortas Padaria PampulhaTortas Padaria Pampulha
Tortas Padaria Pampulha
Rodrigo Vieira
 
Bebida
BebidaBebida

Mais de Rodrigo Vieira (17)

Padariapampulha
PadariapampulhaPadariapampulha
Padariapampulha
 
Seja idiota Jabor
Seja idiota JaborSeja idiota Jabor
Seja idiota Jabor
 
Pessoas Especiais
Pessoas EspeciaisPessoas Especiais
Pessoas Especiais
 
Sorria Sempre
Sorria SempreSorria Sempre
Sorria Sempre
 
Temperamentos _Sathler
Temperamentos _SathlerTemperamentos _Sathler
Temperamentos _Sathler
 
Padariapampulha
PadariapampulhaPadariapampulha
Padariapampulha
 
Padariapampulha
PadariapampulhaPadariapampulha
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/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
v
vv
v
 
ptt
pttptt
ptt
 
Rodrigo
RodrigoRodrigo
Rodrigo
 
So no orkut
So no orkutSo no orkut
So no orkut
 
Eramos Felizes e não sabiamos
Eramos Felizes e não sabiamosEramos Felizes e não sabiamos
Eramos Felizes e não sabiamos
 
Tortas Padaria Pampulha
Tortas Padaria PampulhaTortas Padaria Pampulha
Tortas Padaria Pampulha
 
Bebida
BebidaBebida
Bebida
 

Último

Segurança da Informação - Onde estou e para onde eu vou.pptx
Segurança da Informação - Onde estou e para onde eu vou.pptxSegurança da Informação - Onde estou e para onde eu vou.pptx
Segurança da Informação - Onde estou e para onde eu vou.pptx
Divina Vitorino
 
ExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebuliçãoExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão
 
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de   DevOps/CLoudFerramentas que irão te ajudar a entrar no mundo de   DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ismael Ash
 
Subindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWSSubindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWS
Ismael Ash
 
Eletiva_O-mundo-conectado-Ensino-Médio.docx.pdf
Eletiva_O-mundo-conectado-Ensino-Médio.docx.pdfEletiva_O-mundo-conectado-Ensino-Médio.docx.pdf
Eletiva_O-mundo-conectado-Ensino-Médio.docx.pdf
barbosajucy47
 
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docxse38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
ronaldos10
 
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
Faga1939
 

Último (7)

Segurança da Informação - Onde estou e para onde eu vou.pptx
Segurança da Informação - Onde estou e para onde eu vou.pptxSegurança da Informação - Onde estou e para onde eu vou.pptx
Segurança da Informação - Onde estou e para onde eu vou.pptx
 
ExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebuliçãoExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebulição
 
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de   DevOps/CLoudFerramentas que irão te ajudar a entrar no mundo de   DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
 
Subindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWSSubindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWS
 
Eletiva_O-mundo-conectado-Ensino-Médio.docx.pdf
Eletiva_O-mundo-conectado-Ensino-Médio.docx.pdfEletiva_O-mundo-conectado-Ensino-Médio.docx.pdf
Eletiva_O-mundo-conectado-Ensino-Médio.docx.pdf
 
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docxse38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
 
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
 

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 “” 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