CodeGym /Java Blog /Random-IT /Java – Scrivi su file
John Squirrels
Livello 41
San Francisco

Java – Scrivi su file

Pubblicato nel gruppo Random-IT
Una delle attività più comuni nello sviluppo del software è la capacità di leggere e scrivere file. In Java, scrivere su un file è un processo semplice che può essere eseguito utilizzando classi e metodi integrati. In questo articolo esploreremo come scrivere su un file utilizzando Java e discuteremo le varie classi e metodi coinvolti. Java fornisce classi integrate come FileWriter e PrintWriter per scrivere in un file in Java.

Esempio di scrittura su file Java

Per cominciare, diamo un'occhiata a un semplice esempio di scrittura su un file in Java. Ecco un esempio di come scrivere una stringa in un file in Java utilizzando la classe FileWriter :

Classe FileWriter

La classe FileWriter è un altro modo per scrivere su un file in Java. È una classe di flusso di caratteri che consente di scrivere dati di caratteri in un file. Ecco un esempio che dimostra come utilizzare la classe FileWriter per scrivere una stringa in un file:
import java.io.FileWriter;
import java.io.IOException;


// Main method for the string to file in java starts from here,
public class WriteToFileExample {
    public static void main(String[] args) {
        // create a string to write text to file
        String data = "Hello, world!";

        try {
            // create a FileWriter object with the file name
            FileWriter writer = new FileWriter("output.txt");

            // write the string to the file
            writer.write(data);

            // close the writer
            writer.close();

            System.out.println("Successfully wrote text to file.");

        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}
In questo esempio, creiamo prima un oggetto String denominato data che contiene il testo che vogliamo scrivere in un file. Creiamo quindi un oggetto FileWriter con il nome del file su cui vogliamo scrivere, in questo caso denominato output.txt . Successivamente, utilizziamo il metodo write() dell'oggetto FileWriter per scrivere la stringa di dati nel file. Questo metodo accetta un argomento String contenente i dati da scrivere. Infine, chiudiamo l' oggetto FileWriter per rilasciare le risorse del file e stampiamo un messaggio di successo sulla console se l'operazione di scrittura ha esito positivo o un messaggio di errore se viene rilevata un'eccezione. La classe FileWriter è un modo semplice per scrivere dati di caratteri in un file in Java.

Classe FileOutputStream

La classe FileOutputStream viene utilizzata per scrivere dati in un file come flusso di byte. Ecco un esempio:
import java.io.FileOutputStream;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            FileOutputStream stream = new FileOutputStream("output.txt");
            byte[] bytesToWrite = textToWrite.getBytes();
            stream.write(bytesToWrite);
            stream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
In questo esempio creiamo un oggetto FileOutputStream denominato stream con il nome del file "output.txt" su cui scrivere. Quindi convertiamo la stringa textToWrite in un array di byte utilizzando il metodo getBytes() e scriviamo l'array di byte nell'oggetto stream utilizzando il metodo write() . Infine, chiudiamo l' oggetto stream .

Classe BufferedWriter

La classe BufferedWriter viene utilizzata per scrivere testo in un file con funzionalità di buffering. Ecco un esempio:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));
            writer.write(textToWrite);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
In questo esempio creiamo un oggetto BufferedWriter denominato writer con un oggetto FileWriter che scrive nel file "output.txt". Utilizziamo quindi il metodo write() dell'oggetto writer per scrivere textToWrite nel file. Infine chiudiamo l' oggetto scrittore .

Metodo WriteString()

Il metodo writeString() è un metodo utile introdotto in Java 11 per scrivere una stringa in un file utilizzando la classe Files . Ti consente di scrivere una stringa in un file in una singola riga di codice. Ecco un esempio:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class WriteToFileExample {
    public static void main(String[] args) {
        // create a string to write to a file
        String data = "Hello, world!";

        // create a file object
        Path file = Paths.get("output.txt");

        try {
            // write the string to the file using writeString() method
            Files.writeString(file, data);

            System.out.println("Successfully wrote text to file.");

        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}
In questo esempio, creiamo prima un oggetto String denominato data che contiene il testo che vogliamo scrivere in un file. Creiamo quindi un oggetto Path denominato file che rappresenta il file su cui vogliamo scrivere, in questo caso denominato "output.txt". Successivamente, utilizziamo il metodo Files.writeString() per scrivere la stringa di dati nel file rappresentato dall'oggetto file . Questo metodo accetta due argomenti: l' oggetto Path che rappresenta il file su cui scrivere e l' oggetto String contenente i dati da scrivere. Infine, stampiamo un messaggio di successo sulla console se l'operazione di scrittura ha avuto successo o un messaggio di errore se viene rilevata un'eccezione. Il metodo writeString() è un modo conveniente per scrivere una stringa in un file utilizzando Java 11 o versione successiva.

Classe PrintWriter

La classe PrintWriter svuota automaticamente il buffer di output dopo la scrittura di ogni riga, garantendo che i dati vengano scritti immediatamente nel file. Ciò lo rende una scelta conveniente per scrivere grandi quantità di dati di testo in un file. Ecco un esempio:
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            PrintWriter writer = new PrintWriter(new FileWriter("output.txt"));
            writer.println(textToWrite);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
In questo esempio creiamo un oggetto PrintWriter denominato writer con un oggetto FileWrite che scrive nel file "output.txt". Utilizziamo quindi il metodo println() dell'oggetto writer per scrivere textToWrite nel file. Infine chiudiamo l' oggetto scrittore .

Classe DataOutputStream

La classe DataOutputStream viene utilizzata per scrivere tipi di dati Java primitivi in ​​un file come flusso di byte. Ecco un esempio:
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";
        int numberToWrite = 42;

        try {
            DataOutputStream stream = new DataOutputStream(new FileOutputStream("output.txt"));
            stream.writeUTF(textToWrite);
            stream.writeInt(numberToWrite);
            stream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
In questo esempio creiamo un oggetto DataOutputStream denominato stream , che scrive nel file "output.txt". Utilizziamo quindi il metodo writeUTF() dell'oggetto stream per scrivere la stringa textToWrite e il metodo writeInt() per scrivere l' intero numberToWrite nel file. Infine, chiudiamo l' oggetto stream .

Classe FileChannel

La classe FileChannel fornisce un modo per scrivere dati in un file utilizzando I/O mappato in memoria. Ecco un esempio:
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            File file = new File("output.txt");
            RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw");
            FileChannel channel = randomAccessFile.getChannel();
            ByteBuffer buffer = ByteBuffer.allocate(1024);
            buffer.put(textToWrite.getBytes());
            buffer.flip();
            channel.write(buffer);
            randomAccessFile.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
In questo esempio, creiamo prima un oggetto File denominato file con il nome file "output.txt" come parametro. Creiamo quindi un oggetto RandomAccessFile denominato randomAccessFile con l' oggetto file e la modalità "rw" come parametri. Creiamo quindi un oggetto FileChannel denominato channel , che viene inizializzato utilizzando l'oggetto randomAccessFile . Creiamo quindi un oggetto ByteBuffer denominato buffer con una capacità di 1024 byte e inseriamo la stringa textToWrite come parametro. Quindi capovolgiamo l' oggetto buffer per prepararlo alla scrittura e lo scriviamo nell'oggetto canale utilizzando il metodo write() . Infine, chiudiamo l' oggetto randomAccessFile .

Conclusione

In conclusione, scrivere su un file utilizzando Java è un'attività comune nello sviluppo di software che può essere eseguita utilizzando diverse classi e metodi integrati. In questo articolo, abbiamo discusso diversi esempi di come scrivere in un file, incluso l'uso delle classi FileOutputStream , BufferedWriter , FileWriter , PrintWriter , DataOutputStream e FileChannel . È importante notare che quando si scrive su un file, la corretta gestione degli errori e la chiusura del file dopo la scrittura sono fondamentali per garantire che il file venga salvato correttamente e che le risorse vengano rilasciate correttamente. Con gli esempi forniti in questo articolo, i principianti possono ora avere una conoscenza di base di come scrivere su un file utilizzando Java e possono iniziare a esercitarsi e sperimentare diversi casi d'uso.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION