In questo tutorial, impareremo a conoscere Java FileWriter e i suoi metodi con l'aiuto di esempi.
La FileWriter
classe del java.io
pacchetto può essere utilizzata per scrivere dati (in caratteri) su file.
Estende la OutputStreamWriter
classe.
Prima di saperne di più FileWriter
, assicurati di conoscere Java File.
Crea un FileWriter
Per creare un file writer, dobbiamo Java.io.FileWriter
prima importare il pacchetto. Una volta importato il pacchetto, ecco come possiamo creare il file writer.
1. Utilizzando il nome del file
FileWriter output = new FileWriter(String name);
Qui abbiamo creato un file writer che verrà collegato al file specificato dal nome.
2. Utilizzo di un oggetto del file
FileWriter input = new FileWriter(File fileObj);
Qui abbiamo creato un file writer che sarà collegato al file specificato dall'oggetto del file.
Nell'esempio precedente, i dati vengono memorizzati utilizzando una codifica dei caratteri predefinita.
Tuttavia, poiché Java 11 è possibile specificare anche il tipo di codifica dei caratteri ( UTF8 o UTF16 ).
FileWriter input = new FileWriter(String file, Charset cs);
Qui abbiamo usato la Charset
classe per specificare la codifica dei caratteri del file writer.
Metodi di FileWriter
La FileWriter
classe fornisce implementazioni per diversi metodi presenti nella Writer
classe.
metodo write ()
write()
- scrive un singolo personaggio allo scrittorewrite(char() array)
- scrive i caratteri dall'array specificato nel writerwrite(String data)
- scrive la stringa specificata nel writer
Esempio: FileWriter per scrivere dati su un file
import java.io.FileWriter; public class Main ( public static void main(String args()) ( String data = "This is the data in the output file"; try ( // Creates a FileWriter FileWriter output = new FileWriter("output.txt"); // Writes the string to the file output.write(data); // Closes the writer output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Nell'esempio precedente, abbiamo creato un file writer denominato output. Il lettore di output è collegato al file output.txt .
FileWriter output = new FileWriter("output.txt");
Per scrivere dati nel file, abbiamo utilizzato il write()
metodo.
Qui quando eseguiamo il programma, il file output.txt viene riempito con il seguente contenuto.
This is a line of text inside the file.
metodo getEncoding ()
Il getEncoding()
metodo può essere utilizzato per ottenere il tipo di codifica utilizzato per scrivere i dati. Per esempio,
import java.io.FileWriter; import java.nio.charset.Charset; class Main ( public static void main(String() args) ( String file = "output.txt"; try ( // Creates a FileReader with default encoding FileWriter output1 = new FileWriter(file); // Creates a FileReader specifying the encoding FileWriter output2 = new FileWriter(file, Charset.forName("UTF8")); // Returns the character encoding of the reader System.out.println("Character encoding of output1: " + output1.getEncoding()); System.out.println("Character encoding of output2: " + output2.getEncoding()); // Closes the reader output1.close(); output2.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Produzione
La codifica dei caratteri di output1: Cp1252 La codifica dei caratteri di output2: UTF8
Nell'esempio precedente, abbiamo creato 2 file writer denominati output1 e output2.
- output1 non specifica la codifica dei caratteri. Quindi il
getEncoding()
metodo restituisce la codifica dei caratteri predefinita. - output2 specifica la codifica dei caratteri, UTF8 . Quindi il
getEncoding()
metodo restituisce la codifica dei caratteri specificata.
Nota : abbiamo utilizzato il Charset.forName()
metodo per specificare il tipo di codifica dei caratteri. Per saperne di più, visita Java Charset (documentazione Java ufficiale).
metodo close ()
Per chiudere il file writer, possiamo utilizzare il close()
metodo. Una volta close()
chiamato il metodo, non possiamo utilizzare il writer per scrivere i dati.
Altri metodi di FileWriter
Metodo | Descrizione |
---|---|
flush() | obbliga a scrivere tutti i dati presenti nel writer nella corrispondente destinazione |
append() | inserisce il carattere specificato nel writer corrente |
Per saperne di più, visita Java FileWriter (documentazione Java ufficiale).