Salta ai contenuti
Manuale LogoManuale Logo

File

Finora i dati vivevano solo mentre il programma era aperto. Quando il programma finiva, le variabili sparivano.

Un file permette di salvare informazioni su disco: una lista, un messaggio, un risultato, una configurazione.

In questa pagina usiamo file di testo semplici.

Per scrivere testo in un file, puoi usare FileWriter.

import java.io.FileWriter;
import java.io.IOException;
public class ScriviFile {
public static void main(String[] args) {
try {
FileWriter writer = new FileWriter("messaggio.txt");
writer.write("Ciao dal file!");
writer.close();
System.out.println("File scritto.");
} catch (IOException e) {
System.out.println("Errore durante la scrittura.");
}
}
}

Dopo l’esecuzione, nella stessa cartella del programma troverai messaggio.txt.

Scrivere su un file può fallire: la cartella potrebbe non esistere, il file potrebbe essere bloccato oppure potresti non avere i permessi.

Java ti chiede di gestire questa possibilità.

Per ora leggi try catch così:

  • prova a fare questa operazione
  • se qualcosa va storto, esegui il blocco catch

Vedremo le eccezioni con più calma nella sezione sugli errori.

Per leggere un file riga per riga, puoi usare Scanner.

Prima crea un file messaggio.txt con questo contenuto:

Ciao dal file!

Poi scrivi:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class LeggiFile {
public static void main(String[] args) {
try {
File file = new File("messaggio.txt");
Scanner reader = new Scanner(file);
while (reader.hasNextLine()) {
String riga = reader.nextLine();
System.out.println(riga);
}
reader.close();
} catch (FileNotFoundException e) {
System.out.println("File non trovato.");
}
}
}

Output:

Ciao dal file!

Nel codice abbiamo scritto:

new File("messaggio.txt")

Questo è un percorso relativo. Java cerca il file nella cartella da cui esegui il programma.

Se il programma dice “File non trovato”, controlla:

  • il nome del file
  • l’estensione .txt
  • la cartella in cui stai eseguendo java

Di solito FileWriter sovrascrive il file. Per aggiungere testo alla fine, usa il secondo parametro true:

FileWriter writer = new FileWriter("diario.txt", true);
writer.write("Nuova riga\n");
writer.close();

\n indica un a capo.

Quando lavori con i file, ricordati tre cose:

  1. le operazioni possono fallire, quindi servono try catch
  2. le risorse aperte vanno chiuse
  3. il percorso del file dipende dalla cartella in cui esegui il programma

I file permettono a Java di leggere e salvare dati esterni al codice.