arquivos if669 - introdução à programação monitoria de ip igor ebrahim (ies) nicole sultanum...
TRANSCRIPT
![Page 1: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/1.jpg)
ArquivosArquivos
if669 - Introdução à Programação
Monitoria de IP
Igor Ebrahim (ies)
Nicole Sultanum (nbs2)
Paulo Borba (phmb)
![Page 2: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/2.jpg)
RoteiroRoteiro
• Persistência– Pra quê?
• Arquivos– TextFile– JavaFile– RandomFile
![Page 3: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/3.jpg)
Persistência... pra quê?Persistência... pra quê?
• Não perder os dados no fim da execução de um programa– Memória temporária
• principal• Mais rápida e cara
– Memória permanente• secundária• mais lenta e barata
![Page 4: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/4.jpg)
ArquivosArquivos
• Streams de bytes
• Não existem tipos
• Cadeias de bytes– como os dados são representados na
memória
![Page 5: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/5.jpg)
ArquivosArquivos
•TextFile
•JavaFile
•RandomJavaFile
![Page 6: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/6.jpg)
TextFileTextFile
• Arquivos texto
• Legíveis por um ser humano
• Unidade básica: char
![Page 7: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/7.jpg)
Exemplo TextFileExemplo TextFile
public class TesteTextFile {public static void main(String args[]) {
String str = "Testando a classe TextFile";try {
TextFile arquivo = new TextFile("java.in", "java.txt");
arquivo.writeString(str);arquivo.close();
} catch (FileNotFoundException e) {MiniJavaSystem console = new MiniJavaSystem();console.println("O arquivo não foi achado!");
} catch (IOException e) {MiniJavaSystem console = new MiniJavaSystem();console.println("Algum problema ocorreu.");
}}
}
![Page 8: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/8.jpg)
JavaFileJavaFile
• Arquivos binários
• Ilegíveis
• Escrita de Objetos– Serializable
• Unidade básica: byte
![Page 9: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/9.jpg)
ExemploExemplo
public class TesteJavaFile {public static void main(String args[]) {
Conta c1 = new Conta(123, "123-0");try {
JavaFile arquivo = new JavaFile("java.in", "java.txt");
arquivo.writeObject(c1);arquivo.close();
} catch (FileNotFoundException e) {MiniJavaSystem console = new MiniJavaSystem();console.println("O arquivo não foi achado!");
} catch (IOException e) {MiniJavaSystem console = new MiniJavaSystem();console.println("Algum problema ocorreu.");
}}
}
![Page 10: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/10.jpg)
Random Java fileRandom Java file
• TextFile e JavaFile acesso seqüencial– Escrita contínua
• RandomJavaFile Acesso randômico– Qualquer lugar do arquivo
• seek(long distancia)• skipBytes(int distancia)
• Leitura (r) ex: readInt() – boolean byte char double int String …
• escrita (rw) ex: writeInt(int dado) – boolean char double int
![Page 11: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/11.jpg)
Seqüencial x RandômicoSeqüencial x Randômico
• Acesso seqüencial
• Acesso randômico
x y
yx
início
início
![Page 12: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/12.jpg)
RevisãoRevisão
• Qual o tamanho de um :– byte e boolean: 1 byte (8 bits)– char(Unicode) e short: 2 bytes (16 bits) – int e float: 4 bytes (32 bits)– double e long: 8 bytes (64 bits)
![Page 13: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/13.jpg)
Exemplo RandomJavaFileExemplo RandomJavaFile
(...)arquivo = new RandomJavaFile("java.bin", "r");console.println("c1.saldo: " + arquivo.readInt());console.println("c2.saldo: " + arquivo.readInt());console.println("c1.numero: " +
arquivo.readString());console.println("c2.numero: " +
arquivo.readString());arquivo.close();
} catch (FileNotFoundException e) {console.println("O arquivo não foi achado!");
} catch (IOException e) {console.println("Algum problema ocorreu.");
}}
}
![Page 14: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/14.jpg)
Exemplo Conta
Exemplo Conta
public class TesteRandomJavaFile {public static void main(String args[]) {
Conta c1 = new Conta(123, "123-0");Conta c2 = new Conta(456, "456-7");MiniJavaSystem console = new MiniJavaSystem();try {
RandomJavaFile arquivo = new RandomJavaFile("java.bin", "rw");
arquivo.writeInt(c1.getSaldo());arquivo.writeInt(c2.getSaldo());arquivo.writeString(c1.getNumero());arquivo.writeString(c2.getNumero());arquivo.close();
(...)
![Page 15: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/15.jpg)
Escrevendo charsEscrevendo chars
public static void main(String args[]) { String a = 10000 + "";try { TextFile r = new TextFile("conta.out",
"testeInteiroTexto.txt");
r.writeString(a);r.close();
} catch (FileNotFoundException e) {e.printStackTrace();
} catch (IllegalArgumentException e) {e.printStackTrace();
} catch (IOException e) {e.printStackTrace();
}
}
![Page 16: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/16.jpg)
Escrevendo bytesEscrevendo bytes
public static void main(String[] args) {int a = 10000;try {
RandomJavaFile r = new RandomJavaFile ("testeInteiroBinario.txt", "rw");
r.writeInt(a);r.close();
} catch (FileNotFoundException e) {e.printStackTrace();
} catch (IllegalArgumentException e) {e.printStackTrace();
} catch (IOException e) {e.printStackTrace();
}}
![Page 17: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/17.jpg)
java.iojava.io
• java.io– InputStream OutputStream (abstratas)
• Leitura e escrita de arquivos binários
– FileInputStream FileOutputStream• leitura e escrita de bytes em arquivos
– DataInputStream/DataOutputStream• Escrita e leitura de tipos primitivos
– ObjectInputStream/ObjectOutputStream• Escrita e leitura de Objetos
![Page 18: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/18.jpg)
java.iojava.io
– Reader/Writer• Leitura e escrita de texto
– FileReader/FileWriter• Leitura e escrita de texto em arquivos
– BufferedReader/PrintWriter• Escrita e leitura de Strings
![Page 19: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/19.jpg)
FiltrosFiltros
• Ler dados como bytes brutos é rápido, mas grosseiro;
• Normalmente, lêem-se os agregados de bytes que formam ints, floats, doubles...
• Algumas classes são capazes de ler um conjunto de bytes e transformá-las para tipos primitivos. (Ex.: RandomJavaFile)
![Page 20: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/20.jpg)
BufferingBuffering
• Transferência física de saída operação lenta se comparada com as velocidades do processador e da memória principal;
• Armazenamento em buffer (buffering) melhorias significativas de desempenho de entrada e saída;
• flush() força o envio a qualquer momento;
![Page 21: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/21.jpg)
BufferingBuffering
Escrita
Leitura
ArquivoArquivo
![Page 22: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/22.jpg)
BufferingBuffering
![Page 23: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/23.jpg)
Tipos PrimitivosTipos Primitivos
![Page 24: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/24.jpg)
ObjetosObjetos
![Page 25: Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)](https://reader036.vdocuments.pub/reader036/viewer/2022062700/552fc14f497959413d8e2ff6/html5/thumbnails/25.jpg)
ResumindoResumindo
• Uso de arquivos para armazenar dados a longo prazo;• Java vê cada arquivo como um fluxo seqüencial de bytes Os
dados são representados na memória como bytes;• Os dados em muitos arquivos seqüenciais não podem ser
modificados sem o risco de destruir parte desses dados O arquivo geralmente é regravado por inteiro;
• Arquivos de acesso aleatório registros de tamanho fixo.
TextFile JavaFile RandomJavaFile
Arquivo de texto Arquivo binário Arquivo binário
Legível por humano Não legível por humano Não legível por humano
char byte byte
Acesso seqüencial Acesso seqüencial Acesso aleatório