Classe Java OutputStreamWriter
Classe Java OutputStreamWriter
Dans ce didacticiel, nous allons découvrir Java OutputStreamWriter et ses méthodes à l'aide d'exemples.
Le OutputStreamWriter
classe du java.io
package peut être utilisé pour convertir des données sous forme de caractères en données sous forme d'octets.
Il étend la classe abstraite Writer
.
Le OutputStreamWriter
La classe 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. C'est parce que le OutputStreamWriter
convertit 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'éditeur 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
, il faut importer le java.io.OutputStreamWriter
paquet d'abord. Une fois que nous avons importé le package, voici comment nous pouvons 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éé un OutputStreamWriter
sortie nommée avec le FileOutputStream
fichier 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 d'encodage des 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é le Charset
class pour spécifier le type d'encodage de caractères.
Méthodes de OutputStreamWriter
Le OutputStreamWriter
la classe fournit des implémentations pour différentes méthodes présentes dans le Writer
classe.
méthode write()
write()
- écrit un seul caractère à l'auteurwrite(char[] array)
- écrit les caractères du tableau spécifié dans le rédacteurwrite(String data)
- écrit la chaîne spécifiée dans le rédacteur
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 du fichier. Le lecteur de flux de sortie est lié au output.txt fichier.
FileOutputStream file = new FileOutputStream("output.txt");
OutputStreamWriter output = new OutputStreamWriter(file);
Pour écrire des données dans le fichier, nous avons utilisé le write()
méthode.
Ici, lorsque nous exécutons le programme, le output.txt le fichier est rempli avec le contenu suivant.
This is a line of text inside the file.
méthode getEncoding()
Le getEncoding()
peut être utilisée pour obtenir le type d'encodage 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();
}
}
}
Sortie
The character encoding of output1: Cp1252 The character encoding of output2: UTF8
Dans l'exemple ci-dessus, nous avons créé 2 écrivains de flux de sortie nommés output1 et sortie2 .
- sortie1 ne spécifie pas le codage des caractères. D'où le
getEncoding()
renvoie l'encodage de caractères par défaut. - sortie2 spécifie le codage des caractères, UTF8 . D'où le
getEncoding()
renvoie l'encodage de caractères spécifié.
Remarque :Nous avons utilisé le Charset.forName()
méthode pour spécifier le type d'encodage de caractères. Pour en savoir plus, visitez Java Charset (documentation officielle de Java).
Méthode close()
Pour fermer le rédacteur de flux de sortie, nous pouvons utiliser le close()
méthode. Une fois le close()
est appelée, nous ne pouvons pas utiliser le rédacteur pour écrire les données.
Autres méthodes de OutputStreamWriter
Méthode | Description |
---|---|
flush() | oblige à écrire toutes les données présentes dans le writer vers la destination correspondante |
append() | insère le caractère spécifié dans le rédacteur courant |
Pour en savoir plus, visitez Java OutputStreamWriter (documentation officielle de Java).
Java