In questa lezione illustro alcuni esempi di come utilizzare Java per lavorare con i file di testo:
Lettura di un file di testo
Per leggere un file di testo in Java, è possibile utilizzare la classe Scanner
, che fornisce un’interfaccia semplice per analizzare un input, inclusi i file di testo. Ecco un esempio di codice per leggere il contenuto di un file di testo:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadFileExample {
public static void main(String[] args) {
try {
File file = new File("input.txt");
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
scanner.close();
} catch (FileNotFoundException e) {
System.out.println("File non trovato");
e.printStackTrace();
}
}
}
In questo esempio, viene creato un oggetto File
che rappresenta il file di testo da leggere. Quindi, viene creato un oggetto Scanner
per leggere il contenuto del file. Il ciclo while
viene utilizzato per leggere ogni riga del file fino a quando non si raggiunge la fine del file. La riga è quindi stampata sulla console. Infine, l’oggetto Scanner
viene chiuso per rilasciare le risorse utilizzate.
Scrittura di un file di testo
Per scrivere un file di testo in Java, è possibile utilizzare la classe PrintWriter
, che fornisce un’interfaccia semplice per scrivere output in un file di testo. Ecco un esempio di codice per scrivere un file di testo:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
public class WriteFileExample {
public static void main(String[] args) {
try {
File file = new File("output.txt");
PrintWriter writer = new PrintWriter(file);
writer.println("Questo è un esempio di file di testo scritto in Java.");
writer.close();
} catch (FileNotFoundException e) {
System.out.println("File non trovato");
e.printStackTrace();
}
}
}
In questo esempio, creo un oggetto File
che rappresenta il file di testo da scrivere. Quindi, creo un oggetto PrintWriter
per scrivere il contenuto del file. La riga di testo è scritta utilizzando il metodo println
e l’oggetto PrintWriter
è successivamente chiuso per salvare il contenuto del file.
Questi sono solo esempi di codice per la lettura e la scrittura di file di testo in Java. Ci sono molte altre opzioni disponibili per personalizzare il processo di lettura e scrittura dei file di testo, tra cui l’utilizzo di classi come BufferedReader
e BufferedWriter
per migliorare le prestazioni di lettura e scrittura dei file di testo.
Lettura di un file csv
Supponiamo di avere un file CSV chiamato “data.csv” che contiene i seguenti dati:
Nome,Cognome,Età
Mario,Rossi,30
Luigi,Verdi,25
Carla,Bianchi,35
Possiamo utilizzare la libreria OpenCSV per leggere i dati dal file CSV. Ecco un esempio di codice:
import com.opencsv.CSVReader;
import java.io.FileReader;
import java.io.IOException;
public class LeggiCSV {
public static void main(String[] args) {
String fileCsv = "data.csv";
try (CSVReader reader = new CSVReader(new FileReader(fileCsv))) {
String[] riga;
while ((riga = reader.readNext()) != null) {
System.out.println(riga[0] + " " + riga[1] + ", " + riga[2] + " anni");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
In questo esempio, stiamo utilizzando la classe CSVReader
della libreria OpenCSV per leggere i dati dal file CSV. La lettura avviene nel blocco try
–catch
, dove stiamo aprendo il file CSV con FileReader
e creando un nuovo oggetto CSVReader
.
Dentro il ciclo while
, leggiamo ogni riga del file CSV tramite il metodo readNext()
, che restituisce un array di stringhe che rappresenta i valori della riga. In questo esempio, stiamo semplicemente stampando i valori della riga a schermo.
Affinchè tu possa utilizzare la libreria OpenCSV devi prima scaricarla e aggiungerla alle librerie del tuo progetto Java.