Lendo e escrevendo arquivos

Entrada/Saída e Streams em Java

Alex Liu

Software Development Engineer

Casting

  • Converter entre diferentes tipos primitivos

  • Conversão ampliada (widening) - automática de menor -> maior

    • byte -> short -> char -> int -> long -> float -> double
// Widening casting - acontece automaticamente
byte myByte = 8;
int myInt = myByte;
  • Conversão reduzida (narrowing) - manual, de maior -> menor
// Narrowing casting - é manual
double myDouble = 3.14;
int myInt = (int) myDouble; // Note o (int)
Entrada/Saída e Streams em Java

Entendendo casting específico para leitura de arquivo

  • Casting de int para char: char data = (char) 123;
// Valor Unicode para o caractere 'a'
int data = 97;
// Imprime diretamente o dado em formato `int`
System.out.print(data);
// Faz cast de `int` para `char` e imprime
System.out.print((char)data);
97
a
1 https://www.ascii-code.com/
Entrada/Saída e Streams em Java

Lendo dados de um arquivo com FileReader

  • Importe a classe FileReader para habilitar a leitura de arquivos
import java.io.FileReader;
  • Leia o arquivo, imprima caractere a caractere e depois feche
FileReader fr = new FileReader("example.txt");
int data = fr.read();
// Ler e imprimir cada caractere
while (data != -1) {
    System.out.print((char) data);
    data = fr.read();
}
fr.close(); // Feche o arquivo para liberar recursos
Entrada/Saída e Streams em Java

Leitura eficiente com BufferedReader

  • BufferedReader - import java.io.BufferedReader;
    • Lê arquivos texto linha a linha
    • Mais eficiente para arquivos grandes
// Crie um objeto BufferedReader
BufferedReader br = new BufferedReader(new FileReader("example.txt"));
String line;
// Use .readLine() para ler o arquivo linha a linha
while ((line = br.readLine())!= null){
  System.out.println(line);
}
br.close();
Entrada/Saída e Streams em Java

Escrevendo dados com FileWriter

  • FileWriter:
    • Sobrescreve o conteúdo por padrão — use com cuidado para evitar perda de dados!
  • Importar FileWriter
import java.io.FileWriter;


// Crie um novo objeto `FileWriter` FileWriter fw = new FileWriter("example.txt"); // Escreva no arquivo usando `.write() fw.write("Overwriting the file."); fw.close()
Entrada/Saída e Streams em Java

Anexando dados com FileWriter

  • FileWriter
    • Permite anexar dados configurando o modo append, sem sobrescrever o conteúdo

$$

// Inicialize `FileWriter` no modo append
FileWriter fw = new FileWriter("example.txt", true);
// Anexe dados ao arquivo
fw.write("Appending data.");
fw.close()
Entrada/Saída e Streams em Java

Escrita eficiente com BufferedWriter

  • BufferedWriter - import java.io.BufferedWriter;
    • Escreve texto com mais eficiência em blocos maiores
    • Minimiza operações de escrita
// Crie um objeto BufferedWriter
BufferedWriter bw = new BufferedWriter(new FileWriter("example.txt"));
bw.write("Writing data");

// .newLine() para adicionar quebras de linha
bw.newLine(); 
bw.close();
Entrada/Saída e Streams em Java

Vamos praticar!

Entrada/Saída e Streams em Java

Preparing Video For Download...