Buscar

Aula_off-topic 1 - IO EM JAVA

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().

Continue navegando