Java OutputStreamWriter (avec des exemples)

Dans ce didacticiel, nous allons découvrir Java OutputStreamWriter et ses méthodes à l'aide d'exemples.

La OutputStreamWriterclasse du java.iopackage peut être utilisée pour convertir des données sous forme de caractères en données sous forme d'octets.

Il étend la classe abstraite Writer.

La OutputStreamWriterclasse fonctionne avec d'autres flux de sortie. Il est également connu comme un pont entre les flux d'octets et les flux de caractères. En effet, le OutputStreamWriterconvertit ses caractères en octets.

Par exemple, certains caractères nécessitent 2 octets pour être stockés dans le stockage. Pour écrire de telles données, nous pouvons utiliser l'écrivain de flux de sortie qui convertit le caractère en octets correspondants et stocke les octets ensemble.

Créer un OutputStreamWriter

Pour créer un OutputStreamWriter, nous devons d'abord importer le java.io.OutputStreamWriterpackage. Une fois que nous avons importé le package, voici comment créer le rédacteur de flux de sortie.

 // Creates an OutputStream FileOutputStream file = new FileOutputStream(String path); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); 

Dans l'exemple ci-dessus, nous avons créé une OutputStreamWritersortie nommée avec le FileOutputStreamfichier nommé.

Ici, nous utilisons le codage de caractères par défaut pour écrire des caractères dans le flux de sortie.

Cependant, nous pouvons spécifier le type de codage de caractères ( UTF8 ou UTF16 ) à utiliser pour écrire des données.

 // Creates an OutputStreamWriter specifying the character encoding OutputStreamWriter output = new OutputStreamWriter(file, Charset cs); 

Ici, nous avons utilisé la Charsetclasse pour spécifier le type de codage de caractères.

Méthodes de OutputStreamWriter

La OutputStreamWriterclasse fournit des implémentations pour différentes méthodes présentes dans la Writerclasse.

write (), méthode

  • write() - écrit un seul caractère à l'écrivain
  • write(char() array) - écrit les caractères du tableau spécifié vers l'écrivain
  • write(String data) - écrit la chaîne spécifiée dans l'écrivain

Exemple: OutputStreamWriter pour écrire des données dans un fichier

 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 ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream("output.txt"); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); // Writes string to the file output.write(data); // Closes the writer output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Dans l'exemple ci-dessus, nous avons créé un lecteur de flux de sortie en utilisant le flux de sortie de fichier. Le lecteur de flux de sortie est lié au fichier output.txt .

 FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file); 

Pour écrire des données dans le fichier, nous avons utilisé la write()méthode.

Ici, lorsque nous exécutons le programme, le fichier output.txt est rempli du contenu suivant.

 This is a line of text inside the file. 

getEncoding (), méthode

La getEncoding()méthode peut être utilisée pour obtenir le type de codage utilisé pour écrire des données dans le flux de sortie. Par exemple,

 import java.io.OutputStreamWriter; import java.nio.charset.Charset; import java.io.FileOutputStream; class Main ( public static void main(String() args) ( try ( // Creates an output stream FileOutputStream file = new FileOutputStream("output.txt"); // Creates an output stream reader with default encoding OutputStreamWriter output1 = new OutputStreamWriter(file); // Creates an output stream reader specifying the encoding OutputStreamWriter output2 = new OutputStreamWriter(file, Charset.forName("UTF8")); // Returns the character encoding of the output stream 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(); ) ) ) 

Production

 Le codage des caractères de la sortie1: Cp1252 Le codage des caractères de la sortie2: UTF8 

Dans l'exemple ci-dessus, nous avons créé 2 enregistreurs de flux de sortie nommés output1 et output2.

  • output1 ne spécifie pas le codage des caractères. Par conséquent, la getEncoding()méthode renvoie le codage de caractères par défaut.
  • output2 spécifie le codage des caractères, UTF8 . Par conséquent, la getEncoding()méthode renvoie le codage de caractères spécifié.

Remarque : Nous avons utilisé la Charset.forName()méthode pour spécifier le type de codage de caractères. Pour en savoir plus, visitez Java Charset (documentation Java officielle).

close (), méthode

Pour fermer l'écrivain de flux de sortie, nous pouvons utiliser la close()méthode. Une fois la close()méthode appelée, nous ne pouvons pas utiliser l'écrivain pour écrire les données.

Autres méthodes de OutputStreamWriter

Méthode La description
flush() oblige à écrire toutes les données présentes dans l'écrivain vers la destination correspondante
append() insère le caractère spécifié dans l'écrivain courant

Pour en savoir plus, visitez Java OutputStreamWriter (documentation Java officielle).

Articles intéressants...