Gestione dei file in Java: come lavorare con i file Java?

Pubblicato: 2021-03-12

Java è un linguaggio di programmazione molto popolare. Oltre all'architettura e ai componenti robusti , una delle ragioni più significative alla base del suo successo e popolarità è il supporto per numerose funzionalità. La gestione dei file in Java è una di queste funzionalità che ci consente di lavorare con i file. Oggi impareremo le varie operazioni che possiamo eseguire con i concetti di file in Java .

Sommario

Che cos'è la gestione dei file Java?

Come accennato, la gestione dei file in Java consente di lavorare con i file. È una funzionalità Java definita nella classe File del pacchetto Java.io. Il pacchetto io in Java.io sta per Input e Output. Troverai tutte le classi di cui avrai bisogno per eseguire qualsiasi operazione di input o output nel pacchetto Java.io.

È possibile accedere e utilizzare questa classe File per eseguire varie funzioni creando un oggetto e fornendo il nome del file o della directory. La sintassi per creare un oggetto e utilizzare la classe File è:

importare java.io.File;

File obj = nuovo File(“nome.txt”);

Come visto nella sintassi sopra, devi prima importare la classe File dal pacchetto Java.io. Una volta importato, tutto ciò che devi fare è creare un oggetto e specificare il nome del file o della directory con cui vuoi lavorare. Per menzionare il nome della directory in un sistema operativo Windows, devi usare "\\". Ad esempio, devi usare " C:\\Users\\MyFolder\\MySubFolder " e non " C:\Users|MyFolder|MySubFolder ". Tuttavia, per altri sistemi operativi come Linux, puoi usare il singolo \ come al solito.

Tutte le operazioni di I/O (Input/Output) dei concetti di file in Java vengono eseguite con l'aiuto di un flusso. Approfondiamo cos'è un flusso e come vengono eseguite queste operazioni con esso?

Qual è il concetto di flussi in Java?

In termini più semplici, un flusso è una serie di dati. Esistono due tipi di stream, che sono:

  • Flusso di byte : questo tipo di flusso funziona con dati di byte. Le operazioni di I/O vengono eseguite con un flusso di byte durante la lettura o la scrittura di dati nel formato byte (8 bit).
  • Flusso di caratteri : questo tipo di flusso funziona con la sequenza di caratteri. Le operazioni di I/O vengono eseguite con un flusso di caratteri durante la lettura o la scrittura di dati utilizzando i caratteri.

Checkout: i migliori progetti Java su GitHub

Quali sono i diversi metodi disponibili per la gestione dei file in Java?

La classe File fornisce vari metodi predefiniti per aiutarti a eseguire tutte le operazioni di I/O semplicemente chiamandole. La tabella seguente mostra tutti i metodi, insieme alle azioni che eseguono.

Metodo Tipo Descrizione
canRead() booleano Controlla se puoi leggere il file o meno.
canWrite() booleano Verifica se puoi scrivere nel file o meno.
creaNuovoFile() booleano Questo creerà un nuovo file vuoto.
eliminare() booleano Questo metodo eliminerà il file specificato.
esiste() booleano Verifica se il file menzionato esiste.
getName() Corda Restituisce il nome del file.
getAbsolutePath() Corda Restituisce il percorso assoluto del file.
lunghezza() Lungo Restituisce la dimensione del file in byte.
elenco() Corda[] Restituisce un elenco di nomi di file presenti nella directory.
mkdir() booleano Questo metodo creerà una nuova directory.

Come eseguire diverse operazioni di gestione dei file Java?

Poiché conosci i diversi metodi disponibili nella classe File, è ora di usarli per eseguire varie operazioni di gestione dei file Java . Per cominciare, puoi completare le seguenti azioni su un file.

  • Crea un nuovo file.
  • Ottieni informazioni sul file.
  • Scrivi in ​​un file.
  • Leggi da un file.
  • Elimina un file.

Analizzeremo un esempio per eseguire ciascuna di queste operazioni. Nel primo esempio creeremo un nuovo file e quindi utilizzeremo lo stesso file per eseguire altre attività.

Creazione di un file

Puoi creare un file con il metodo createNewFile(). L'esecuzione del metodo restituirà true o false. Se il file viene creato correttamente, restituirà un true. D'altra parte, se il file esiste già, restituirà false.

Si consiglia sempre di utilizzare questo metodo all'interno di un blocco try and catch poiché può generare un'eccezione se il file non viene creato correttamente. Puoi saperne di più nella nostra guida sulla gestione delle eccezioni in Java . Vedere l'esempio seguente che utilizza il metodo createNewFile() per creare un nuovo file vuoto.

importare java.io.File; // Importazione della classe File

import java.io.IOException; // Importazione della classe IOException per la gestione degli errori

classe pubblica CreateFileExample{

public static void main(String[] args){

Tentativo{

File obj = nuovo File(“nuovoFile.txt”);

if(obj.createNewFile()){ // se restituisce true, cioè creato con successo

System.out.println("Il file è stato creato con successo:" + obj.getName());

}

else{/ // se restituisce false, ovvero il file esiste già

System.out.println(“File già esistente”);

}

}

catch (IOException e){//per catturare le eccezioni se si verifica un errore

System.out.println("Errore verificato");

e.printStackTrace();

}

}

}

Produzione:

Il file è stato creato correttamente: newFile.txt

Ottenere informazioni sui file

È possibile utilizzare vari metodi definiti nella classe File per accedere alle diverse informazioni del file, come nome, lunghezza, percorso assoluto, leggibile e altro. Alcuni dei metodi per ottenere informazioni sui file sono utilizzati nell'esempio seguente.

importare java.io.File;

classe pubblica AccessInfoExample{

public static void main(String[] args){

// Creazione di un oggetto

File obj = nuovo File(“nuovoFile.txt”);

se(obj.esiste()){

// Ottenere il nome del file

System.out.println(“Il nome del file è:” + obj.getName());

// Ottenere il percorso assoluto

System.out.println(“Il percorso assoluto del file è:” + obj.getAbsolutePath());

// Verifica se il file è scrivibile

System.out.println("Il file è scrivibile?" + obj.canWrite());

// Verifica se il file è leggibile

System.out.println("Il file è leggibile?" + obj.canRead());

// Ottenere la lunghezza in byte

// Mostrerà 0 poiché non abbiamo ancora scritto nulla nel nostro file

System.out.println("La dimensione del file in byte:" + obj.length());

}

altro{

System.out.println("File denominato" + obj.getName() + "non esiste.");

}

}

}

Produzione:

Il nome del file è: newFile.txt

Il percorso assoluto del file è: D:JavaProgramming:newFile.txt

Il file è scrivibile? vero

Il file è leggibile? vero

Dimensione del file in byte: 0

L'output dell'esempio precedente può variare a seconda del nome del file, del percorso in cui è stato salvato e delle dimensioni. Se il file specificato non esiste, mostrerà "Il file denominato newFile.txt non esiste".

Scrivere in un file

Per scrivere dati in byte, utilizzare la classe FileOutputStream e, per i caratteri, utilizzare la classe FileWriter. Nell'esempio seguente, useremo la classe FileWriter e il suo metodo write() predefinito per scrivere qualcosa all'interno del nostro "newFile".

Una cosa da notare prima di iniziare con l'esempio è che ogni volta che si apre un file per la scrittura, è necessario chiuderlo con il metodo close(). La chiusura del file consentirà di recuperare le risorse allocate dal compilatore Java per scrivere in un file. Diamo un'occhiata a come farlo nell'esempio.

importare java.io.FileWriter; // Importazione della classe FileWriter

import java.io.IOException; // Importazione della classe IOException per la gestione degli errori

classe pubblica WriteExample{

public static void main(String[] args){

Tentativo{

FileWriter obj = nuovo FileWriter ("nuovoFile.txt");

obj.write("Questo sarà scritto nel file newFile.txt!");

obj.close(); // Chiusura del file

System.out.println("Abbiamo scritto correttamente il file e lo abbiamo chiuso.");

}

catch(IOException e){

System.out.println("Errore verificato.");

e.printStackTrace();

}

}

}

Produzione:

Abbiamo scritto con successo nel file e lo abbiamo chiuso.

Lettura da un file

È possibile utilizzare FileInputStream per leggere i dati dei byte e FileReader per leggere i dati dei caratteri da un file. In alternativa, puoi anche usare la classe Scanner per leggere da un file. Poiché abbiamo già utilizzato FileWriter per scrivere dati, in questo esempio utilizzeremo la classe Scanner per leggere i dati. Come durante la scrittura, anche durante la lettura è necessario chiudere il file aperto.

importare java.io.File; // Importazione della classe File

import java.io.FileNotFoundException; // Importazione della classe per la gestione degli errori

importare java.util.Scanner; // Importazione della classe Scanner per la lettura di file di testo

classe pubblica Leggi Esempio{

public static void main(String[] args){

Tentativo{

File obj = nuovo File(“nuovoFile.txt”);

Scanner robj = nuovo Scanner(obj);

mentre (robj.hasNextLine()){

Stringa dataInfo = robj.nextLine();

System.out.println(dataInfo);

}

robj.close();

}

catch(FileNotFoundException e){

System.out.println("Errore verificato.");

e.printStackTrace();

}

}

}

Produzione:

Questo verrà scritto nel file newFile.txt!

Eliminazione di un file

È possibile eliminare un file utilizzando il metodo delete() della classe File. Puoi anche eliminare un'intera cartella se è vuota. Eliminiamo il nostro file "newFile.txt" nell'esempio seguente.

importare java.io.File; // Importa la classe File

classe pubblica EliminaEsempio{

public static void main(String[] args){

File obj = nuovo File(“nuovoFile.txt”);

if(obj.delete()){

System.out.println("Il file denominato" + obj.getName() + "è stato eliminato con successo.");

}

altro{

System.out.println("File non cancellato.");

}

}

}

Produzione:

Il file denominato newFile.txt è stato eliminato correttamente.

Leggi anche: Idee e argomenti del progetto Java

Impara i corsi di software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Conclusione

In questo post, hai imparato tutto sulla gestione dei file in Java . Java fornisce varie funzionalità di questo tipo, il che lo rende uno dei linguaggi di programmazione più popolari in tutto il mondo. Quindi, non sorprende che lo stipendio degli sviluppatori Java in India sia molto alto. Se vuoi diventare uno sviluppatore Java e ottenere un pacchetto di stipendio elevato, il corso Java online gratuito di upGrad è adatto a te.

Il corso fa parte del programma upStart, un'inestimabile iniziativa di riqualificazione. Una volta terminato il corso gratuito e ottenuta la certificazione, puoi ulteriormente optare per la certificazione PG di upGrad in Full-Stack Development . Ottieni oltre 400 ore di materiale didattico con esperienza pratica attraverso progetti. Segui il corso ed eccelle nel campo dello sviluppo software con concetti di programmazione Java.

Come leggere e scrivere su file in Java?

Un oggetto di classe InputStream rappresenta una fonte di dati da cui è possibile leggere byte e un oggetto di classe OutputStream rappresenta una destinazione in cui possono essere scritti byte. Tali oggetti vengono utilizzati con varie classi del pacchetto java.io per leggere e scrivere file, leggere e scrivere dati dai socket e per eseguire una varietà di altre operazioni di input e output.

Quali sono le diverse librerie di gestione dei file in Java?

Ci sono diverse librerie di gestione dei file fornite in java. Ognuno ha il suo scopo e il suo utilizzo. Il pacchetto java.io definisce le classi di gestione dei file di base. Quindi possiamo dire che è la libreria di gestione dei file più generica. Il pacchetto java.nio, noto anche come nuovo pacchetto Input/Output, viene utilizzato principalmente per il trasferimento di dati ad alta velocità, bassa latenza e larghezza di banda ridotta. È sicuro, leggero e indipendente dalla piattaforma. Questo pacchetto estende il pacchetto java.io aggiungendo API basate sul canale. Inoltre, il pacchetto java.nio.file serve per l'interfaccia di programmazione per i file system. Un file system è un'organizzazione gerarchica di dati, indipendente dal supporto fisico, all'interno del quale sono archiviate le informazioni. Un file system consente la condivisione di file e la comunicazione tra processi tra le applicazioni. Inoltre, il pacchetto java.nio.file.attribute è per le classi e le interfacce per gli attributi del file system.

Quali sono le applicazioni della gestione dei file in Java?

La gestione dei file è uno dei tanti argomenti interessanti e preziosi sulla programmazione Java. È fondamentale per i programmatori Java sapere come creare, aprire, leggere, scrivere, aggiungere ed eliminare un file in Java. Questo aiuta i programmatori a manipolare i dati in un file. Ci sono molte operazioni che possono essere eseguite su un file, come scoprire la lunghezza del file, leggere il contenuto di un file, determinare se il file è scrivibile e così via.