English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce tutoriel, nous allons apprendre Java OutputStreamWriter et ses méthodes à l'aide d'exemples.
La classe OutputStreamWriter du paquet java.io peut être utilisée pour convertir des données sous forme de caractères en données sous forme de bytes.
Il hérite de la classe abstraite Writer.
La classe OutputStreamWriter peut être utilisée avec d'autres flux de sortie. Elle est également appelée pont entre les flux de bytes et les flux de caractères. C'est parce que OutputStreamWriter convertit ses caractères en octets.
Par exemple, certains caractères nécessitent2Un octet est stocké dans la mémoire. Pour écrire ce type de données, nous pouvons utiliser l'écriteur de flux de sortie, qui convertit les caractères en octets correspondants et les stocke ensemble.
Pour créer un OutputStreamWriter, nous devons d'abord importer le paquet java.io.OutputStreamWriter. Après avoir importé le paquet, nous pouvons créer ici l'écriteur de flux de sortie.
//Créer un OutputStream FileOutputStream file = new FileOutputStream(String path); //créer un OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file);
Dans les exemples ci-dessus, nous avons créé un OutputStreamWriter nommé output et un FileOutputStream nommé file.
Dans ce cas, nous utilisons le codage de caractères par défaut pour écrire les caractères dans le flux de sortie.
Cependant, nous pouvons spécifier le type de codage de caractères utilisé pour écrire les données (UTF8OuUTF16)
//Créer un OutputStreamWriter, spécifier le codage de caractères OutputStreamWriter output = new OutputStreamWriter(file, Charset cs);
Dans ce cas, nous utilisons la classe Charset pour spécifier le type de codage de caractères.
La classe OutputStreamWriter fournit des implémentations pour différentes méthodes présentes dans la classe Writer.
write() -Écrire un caractère dans l'écriteur
write(char[] array) - Écrire les caractères du tableau spécifié dans l'écriteur
write(String data) - Écrire la chaîne spécifiée dans l'écriteur
import java.io.FileOutputStream; import java.io.OutputStreamWriter; public class Main {}} public static void main(String args[]) { String data = "Ceci est une ligne de texte à l'intérieur du fichier."; try { // créer un FileOutputStream FileOutputStream file = new FileOutputStream("output.txt"); //créer un OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); //écrire une chaîne dans le fichier output.write(data); //fermer le writer output.close(); } catch (Exception e) { e.getStackTrace(); } } }
Dans l'exemple ci-dessus, nous avons utilisé un flux de sortie de fichier pour créer un lecteur de flux de sortie. Le lecteur de flux de sortie est avecoutput.txtlien de fichier.
FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file);
Pour écrire des données dans le fichier, nous avons utilisé la méthode write().
Ici, lorsque nous exécutons le programme,output.txtLe fichier sera rempli avec le contenu suivant.
Ceci est une ligne de texte à l'intérieur du fichier.
La méthode getEncoding() 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 { // créer un flux de sortie FileOutputStream file = new FileOutputStream("output.txt"); // créer un lecteur de flux de sortie avec le codage par défaut OutputStreamWriter output1 = new OutputStreamWriter(file); // créer un lecteur de flux de sortie avec le codage spécifié OutputStreamWriter output2 = new OutputStreamWriter(file, Charset.forName("UTF8")); // retourne le codage des caractères du flux de sortie System.out.println("output1du codage des caractères : " + output1.getEncoding()); System.out.println("output2du codage des caractères : " + output2.getEncoding()); // fermer le lecteur output1.close(); output2.close(); } catch(Exception e) { e.getStackTrace(); } } }
Output results
output1character encoding: Cp1252 output2character encoding: UTF8
In the above example, we created2a total of output stream writers, named output1and output2.
output1No character encoding is specified. Therefore, the getEncoding() method returns the default character encoding.
output2Specify character encodingUTF8. Therefore, the getEncoding() method returns the specified character encoding.
Note: We have specified the type of character encoding using the Charset.forName() method.
To close the output stream writer, we can use the close() method. Once the close() method is called, the writer cannot be used to write data.
Method | Description |
---|---|
flush() | Force all data in the writer to be written to the corresponding destination |
append() | Insert the specified character into the current writer |