back to top

Leggere un file di testo con Java

Java ci mette a disposizione numerosi strumenti, classi e funzioni, per la manipolazione dei file; tra di essi abbiamo la classe omonima, File(), che produce una rappresentazione astratta di un documento e del percorso che porta ad esso. “Rappresentazione astratta” non รจ di certo una definizione di immediata comprensione per tutti, ma il concetto รจ piรน semplice di quanto non si possa credere: in pratica, grazie alla classe File() un file partecipa al flusso di dati in un’applicazione esattamente come qualsiasi altra informazione o dato.

In questo tutorial vedremo come permettere ad un’applicazione Java di leggere il contenuto di un file, ad esempio una stringa di testo, il tutto sarร  possibile semplicemente passando al programmino il percorso (path) al documento che dovrร  essere letto.

Pubblicitร 

Ma passiamo subito al codice, per altro abbastanza semplice, della nostra applicazione; occhio ai commenti nel listato, eventiali approfondimenti verranno proposti subito dopo il codice:

import java.io.*;
import java.net.*;

// definiamo la classe principale
public class InfoFile
{
  public static void main(String[] args)
  {
    // definiamo il percorso al file da leggere
    File doc=new File("C:/doc.txt");
    URL path=null;
  
    // creaiamo un blocco try-catch per intercettare le eccezioni  
    try
    {
      // mostriamo il percorso al file
      path=doc.toURL(); 
      System.out.println("Il doc si trova nel percorso" + path);

      / /mostriamo il nome del file
      doc=new File(path.getFile()); 
      System.out.println("Nome del file " + doc);
      int i;
  
      // apriamo lo stream di input...
      InputStream is=path.openStream();
      BufferedReader br=new BufferedReader(new InputStreamReader(is));

      // ...e avviamo la lettura del file con un ciclo
      do
      {
        i=br.read();
        System.out.println((char)i);
      }
      while (i!=-1);
      is.close();
    }

    // intercettiamo eventuali eccezioni
    catch (MalformedURLException e)
    {
      System.out.println("Attenzione:" + e);
    }
    catch (IOException e)
    {
      System.out.println(e.getMessage());
    } 
  }
}

Come avrete avuto modo di notare, il codice proposto non presenta particolari punti di difficoltร : la classe pubblica alla base dell’applicazione si chiama InfoFile(), รจ l’unica creata in sede di sviluppo e non nativa di Java e dร  anche il nome al nostro file sorgente “InfoFile.java”.

La classe File() viene richiamata immediatamente, ad essa abbiamo passato come parametro il percorso al file che deve essere processato in modo che il suo contenuti passi allo stream di dati.

Incontriamo poi la classe Url(), in Java questa classe funge da rappresentazione di un Uniform Resource Locator che puรฒ essere un qualsiasi punto in cui รจ reperibile una risorsa; grazie ad essa l’applicazione localizza il file da passare in lettura.

Infine, troviamo la classe BufferedReader() per la lettura del flusso di dati, questa classe legge un stringa di testo sulla base di uno stream di input formato da caratteri; attraverso ciรฒ che viene letto dalla classe, l’applicazione proporrร  in otuput tutti i caratteri che sono passati per il flusso di dati, cioรจ il contenuto del file.

Altri contenuti interessanti

Pubblicitร 
Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.

Leggi anche...

Vibe Coding: cosโ€™รจ, come funziona e quali sono i migliori strumenti AI per programmare

Immagina di poter scrivere software senza dover digitare una...

I migliori libri per imparare a programmare in Python

Imparare a programmare in Python รจ un passo fondamentale...

Il file manifest.json: cos’รจ e a cosa serve

Il file manifest.json รจ un componente chiave nelle applicazioni web moderne,...

Java: cos’è e a cosa serve l’operatore modulo (%)

In Java, l'operatore modulo è rappresentato dal simbolo "%"...

Radice quadrata in C: vediamo come calcolarla in diversi modi

La radice quadrata è un'operazione matematica piuttosto comune (in...

Sperimentare la sequenza di Collatz in C++

Vediamo come verificare la congettura di Collatz con C++....
Pubblicitร