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

Tutoriel de base Java

Java Contrôle de flux

Java Array

Java Orienté Objet (I)

Java Orienté Objet (II)

Java Orienté Objet (III)

Gestion des exceptions Java

Java List

Java Queue (File d'attente)

Java Map Collection

Java Set collection

Java entrée/sortie (I/O)

Java Reader/Writer

Autres sujets Java

Classe Java OutputStreamWriter

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.

créer un OutputStreamWriter

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.

Méthodes OutputStreamWriter

La classe OutputStreamWriter fournit des implémentations pour différentes méthodes présentes dans la classe Writer.

Méthode write()

  • 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

Exemple : OutputStreamWriter écrit 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 = "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()

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.

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

Other methods of OutputStreamWriter

MethodDescription
flush()Force all data in the writer to be written to the corresponding destination
append()Insert the specified character into the current writer