Lettura e scrittura di file

Input/Output e Stream in Java

Alex Liu

Software Development Engineer

Casting

  • Conversione tra diversi tipi primitivi

  • Widening casting: automatico da più piccolo -> più grande

    • byte -> short -> char -> int -> long -> float -> double
// Widening casting: avviene automaticamente
byte myByte = 8;
int myInt = myByte;
  • Narrowing casting: manuale, da più grande -> più piccolo
// Narrowing casting: è manuale
double myDouble = 3.14;
int myInt = (int) myDouble; // Nota (int)
Input/Output e Stream in Java

Casting specifico per la lettura dei file

  • Casting da int a char: char data = (char) 123;
// Valore Unicode per il carattere 'a'
int data = 97;
// Stampa il dato in formato `int`
System.out.print(data);
// Fai il cast da `int` a `char` e stampa
System.out.print((char)data);
97
a
1 https://www.ascii-code.com/
Input/Output e Stream in Java

Leggere dati da un file con FileReader

  • Importa la classe FileReader per abilitare la lettura dei file
import java.io.FileReader;
  • Leggi il file, stampa carattere per carattere e poi chiudi
FileReader fr = new FileReader("example.txt");
int data = fr.read();
// Leggi e stampa ogni carattere
while (data != -1) {
    System.out.print((char) data);
    data = fr.read();
}
fr.close(); // Chiudi il file per liberare risorse
Input/Output e Stream in Java

Lettura efficiente con BufferedReader

  • BufferedReader - import java.io.BufferedReader;
    • Legge i file di testo riga per riga
    • Più efficiente per file grandi
// Crea un oggetto BufferedReader
BufferedReader br = new BufferedReader(new FileReader("example.txt"));
String line;
// Usa .readLine() per leggere riga per riga
while ((line = br.readLine())!= null){
  System.out.println(line);
}
br.close();
Input/Output e Stream in Java

Scrivere dati con FileWriter

  • FileWriter:
    • Per impostazione predefinita sovrascrive il contenuto: attenzione alla perdita di dati!
  • Importa FileWriter
import java.io.FileWriter;


// Crea un nuovo oggetto `FileWriter` FileWriter fw = new FileWriter("example.txt"); // Scrivi i dati nel file con `.write()` fw.write("Overwriting the file."); fw.close()
Input/Output e Stream in Java

Aggiungere dati con FileWriter

  • FileWriter
    • Permette di aggiungere dati in modalità append senza sovrascrivere il contenuto

$$

// Inizializza `FileWriter` in modalità append
FileWriter fw = new FileWriter("example.txt", true);
// Aggiungi dati al file
fw.write("Appending data.");
fw.close()
Input/Output e Stream in Java

Scrittura efficiente con BufferedWriter

  • BufferedWriter - import java.io.BufferedWriter;
    • Scrive testo in modo più efficiente usando blocchi più grandi
    • Riduce le operazioni di scrittura
// Crea un oggetto BufferedWriter
BufferedWriter bw = new BufferedWriter(new FileWriter("example.txt"));
bw.write("Writing data");

// .newLine() per andare a capo
bw.newLine(); 
bw.close();
Input/Output e Stream in Java

Ayo berlatih!

Input/Output e Stream in Java

Preparing Video For Download...