English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, impareremo con esempi Java OutputStreamWriter e i suoi metodi.
La classe OutputStreamWriter del pacchetto java.io può essere utilizzata per convertire i dati in forma di caratteri in dati in forma di byte.
它继承了抽象类Writer。
La classe OutputStreamWriter eredita l'abstract class Writer.
La classe OutputStreamWriter può essere utilizzata con altri stream di output. È anche chiamata ponte tra byte stream e character stream. Questo perché OutputStreamWriter convertirà i caratteri in byte
Crea un OutputStreamWriter
Per creare un OutputStreamWriter, dobbiamo prima importare il pacchetto java.io.OutputStreamWriter. Dopo aver importato il pacchetto, possiamo creare qui il writer di output // crea un OutputStream // crea un OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file);
FileOutputStream file = new FileOutputStream(String path);
In questo esempio, creiamo un OutputStreamWriter chiamato output e un FileOutputStream chiamato file
Ma possiamo specificare il tipo di codifica dei caratteri utilizzato per scrivere i dati (UTF8oUTF16)
// crea un OutputStreamWriter, specifica la codifica dei caratteri OutputStreamWriter output = new OutputStreamWriter(file, Charset cs);
In questo caso, utilizziamo la classe Charset per specificare il tipo di codifica dei caratteri
La classe OutputStreamWriter fornisce implementazioni per diversi metodi della classe Writer
write() - scrive un carattere nel writer
write(char[] array) - scrive i caratteri dell'array specificato nel writer
write(String data) - scrive la stringa specificata nel writer
import java.io.FileOutputStream; import java.io.OutputStreamWriter; public class Main { public static void main(String args[]) { String data = "This is a line of text inside the file."; try { // crea un FileOutputStream FileOutputStream file = new FileOutputStream("output.txt"); // crea un OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); //scrive una stringa nel file output.write(data); //chiude writer output.close(); } catch(Exception e) { e.getStackTrace(); } } }
Nell'esempio sopra, abbiamo utilizzato lo stream di output di file per creare un lettore di stream di output. Il lettore di stream di output è connesso aoutput.txtcollegamento del file
FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file);
Per scrivere dati nel file, abbiamo utilizzato il metodo write().
Qui, quando eseguiamo il programma,output.txtIl file sarà riempito con il seguente contenuto.
Questa è una riga di testo all'interno del file.
Il metodo getEncoding() può essere utilizzato per ottenere il tipo di codifica dei caratteri utilizzato per scrivere i dati nello stream di output. Ad esempio,
import java.io.OutputStreamWriter; import java.nio.charset.Charset; import java.io.FileOutputStream; class Main { public static void main(String[] args) { try { // crea uno stream di output FileOutputStream file = new FileOutputStream("output.txt"); // crea uno stream di output di lettura con codifica predefinita OutputStreamWriter output1 = new OutputStreamWriter(file); // crea uno stream di output di lettura con codifica specificata OutputStreamWriter output2 = new OutputStreamWriter(file, Charset.forName("UTF8")); // ritorna la codifica dei caratteri dello stream di output System.out.println("codifica dei caratteri di output1: " + output1.getEncoding()); System.out.println("codifica dei caratteri di output2: " + output2.getEncoding()); // chiude reader output1.close(); output2.close(); } catch(Exception e) { e.getStackTrace(); } } }
Risultato di output
Codifica dei caratteri di output1: Cp1252 Codifica dei caratteri di output2: UTF8
Nell'esempio sopra, abbiamo creato 2 writer di flusso di output, rispettivamente denominati output1 e output2.
output1 non specifica la codifica dei caratteri. Pertanto, il metodo getEncoding() restituisce la codifica dei caratteri predefinita.
output2 specifica la codifica dei caratteriUTF8. Pertanto, il metodo getEncoding() restituisce la codifica dei caratteri specificata.
Attenzione: Abbiamo specificato il tipo di codifica dei caratteri utilizzando il metodo Charset.forName().
Per chiudere lo scrittore di flusso di output, possiamo utilizzare il metodo close(). Una volta chiamato il metodo close(), non possiamo scrivere dati utilizzando il writer.
Metodo | Descrizione |
---|---|
flush() | Obbliga a scrivere tutti i dati esistenti nel writer nel destinazione corrispondente |
append() | Inserisci il carattere specificato nel writer corrente |