Baixe o app para aproveitar ainda mais
Prévia do material em texto
LINGUAGENS DE PROGRAMAÇÃO DE COMPUTADORES JAVA Leitura e Escrita em arquivos IO em Java • Java possui muitos recursos para manipulação de arquivos tanto para leitura quanto para escrita •Veremos aqui um “esquema” bem prático que pode ser usado em diversas situações. •Podemos classificar o conteúdo de um arquivo basicamente em dois tipos: • Texto • Binário IO em Java Principais classes • Estas 4 classes em itálico você precisa conhecê-las e saber usá-las. • As 3 classes sublinhadas são muito úteis também. • File • File f = new File(“c:\nome.ext”); • FileInputStream • FileInputStream fis = new FileInputStream(f); • FileOutputStrem • FileOutputStream fos = new FileOutputStream(f); • FileReader • FileReader fr = new FileReader(f); • FileWriter • FileWriter fw = new FileWriter(f); • BufferedReader • BufferedReader br = new BufferedReader(fis); • BufferedReader br = new BufferedReader(fr); • BufferedWriter • BufferedWriter bw = new BufferedWriter(fos); • BufferedWriter bw = new BufferedWriter(fw); IO em Java • Arquivos binários • FileInputStream, FileOutputStrem • Arquivos textos • FileReader, FileWriter IO em Java Leitura de dados de arquivos FileInputStream ou FileReader IO em Java Gravação de dados em arquivos FileOutputStream ou FileWriter IO em Java • As classes de IO em Java estão localizadas no pacote: java.io • Portanto é necessário importar: • import java.io.*; IO em Java Principais métodos para leitura do arquivo • Arquivo texto • Lendo um caracter • char c = (char) br.read(); // read() devolve um int // daí a necessidade do cast • Lendo uma linha completa de caracteres • String s = br.readLine(); IO em Java Principais métodos para gravação no arquivo • Arquivo texto • Gravando um caracter • bw.write(c); // char c • Gravando uma sequência de caracteres • bw.write(s.toCharArray()); // s é String • Gravando um newline • bw.newLine(); IO em Java Principais métodos para leitura do arquivo •Arquivo binário • Lendo um byte • byte b = (byte) fis.read(); // read() devolve um int // daí a necessidade do cast • Lendo um conjunto de bytes e armazendo num vetor de bytes • int qtd = fis.read(b); // byte [] b; // lê até b.length bytes e armazena // em b • s = String.valueOf(b); // converte para string IO em Java Principais métodos para gravação no arquivo • Arquivo binário • Gravando um byte • fos.write(b) // int b • Gravando uma sequência de bytes • bw.write(b); // byte []b // grava no arquivo b.length bytes de b • bw.write(s.getBytes()) // String s IO em Java Uma classe útil para arquivos texto PrintWriter • PrintWriter: • Útil para gravar dados formatados em arquivos textos: • int, float, double, long, char, boolean, String, um Object qualquer • PrintWriter pw = new PrinterWriter(bw); • Ex: pw.print(d) // double d • Se d = 7.45 é gravado a string “7.45” • Não há algo similar para ler dados formatos gravados via PrintWriter. IO em Java Uma classe útil para arquivos binários PrintStream • PrintStream: • Útil para gravar dados formatados em arquivos binários: • int, float, double, long, char, boolean, String, um Object qualquer • PrintStream ps= new PrinterStream(fos); • Ex: ps.print(d) // double d • Se d = 7.45 é gravado a string “7.45” • Não há algo similar para ler dados formatos gravados via PrintStream. IO em Java Duas classes muito úteis para arquivos binários •DataOutputStream • Permite a gravação de dados primitivos do Java de modo a permitir recuperação posterior via DataInputStream DataOutputStream dos = new DataOutputStrem(fos); Ex: dos.writeDouble(d) // double d dos.writeFloat(f) // float f dos.writeUTF(s) // String s dos.writeBoolean(b) // boolean b IO em Java Duas classes muito úteis para arquivos binários • DataInputStream • Permite a leitura de dados primitivos do Java gravados via DataOutputStream DataInputStream dis = new DataInputStrem(fis); Ex: d = dis.readDouble() // double d f = dis.readFloat() // float f s = dis.readUTF() // String s b = dis.readBoolean() // boolean b IO Java O método close() • Nunca esqueça de fechar o arquivo • Binários: • fos.close(), fis.close(), ps.close(), dos.close(), dis.close(); • Textos: • fw.close(), fr.close(), pw.close(), br.close(), bw.close().
Compartilhar