English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

教程基础Java

Controllo di流程 di Java

Array di Java

Java orientata agli oggetti (I)

Java orientata agli oggetti (II)

Java orientata agli oggetti (III)

Gestione delle eccezioni Java

Lista (List) di Java

Queue (coda) di Java

Map di Java

Set di Java

Input/Output (I/O) di Java

Reader/Writer di Java

Altri argomenti di Java

Classe OutputStreamWriter di Java

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

Ad esempio, alcuni caratteri necessitano di 2 byte di memoria. Per scrivere questo tipo di dati, possiamo utilizzare il writer di output stream, che convertirà i caratteri in byte corrispondenti e li memorizzerà insieme

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

Metodi di OutputStreamWriter

La classe OutputStreamWriter fornisce implementazioni per diversi metodi della classe Writer

Metodo write()

  • 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

Esempio: OutputStreamWriter scrive dati in un file

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()

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().

Metodo close()

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.

Altri metodi di OutputStreamWriter

MetodoDescrizione
flush()Obbliga a scrivere tutti i dati esistenti nel writer nel destinazione corrispondente
append()Inserisci il carattere specificato nel writer corrente