Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java OutputStreamWriter-klasse

Java OutputStreamWriter-klasse

In deze zelfstudie leren we over Java OutputStreamWriter en zijn methoden aan de hand van voorbeelden.

De OutputStreamWriter klasse van de java.io pakket kan worden gebruikt om gegevens in tekenvorm om te zetten in gegevens in bytes-vorm.

Het breidt de abstracte klasse Writer uit .

De OutputStreamWriter class werkt met andere uitvoerstromen. Het is ook bekend als een brug tussen bytestreams en karakterstreams. Dit komt omdat de OutputStreamWriter zet zijn karakters om in bytes.

Sommige tekens hebben bijvoorbeeld 2 bytes nodig om in de opslag te worden opgeslagen. Om dergelijke gegevens te schrijven, kunnen we de uitvoerstroomschrijver gebruiken die het teken omzet in overeenkomstige bytes en de bytes samen opslaat.


Maak een OutputStreamWriter

Om een ​​OutputStreamWriter . aan te maken , moeten we de java.io.OutputStreamWriter . importeren pakket eerst. Nadat we het pakket hier hebben geïmporteerd, kunnen we de uitvoerstroomschrijver maken.

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

// Creates an OutputStreamWriter
OutputStreamWriter output = new OutputStreamWriter(file);

In het bovenstaande voorbeeld hebben we een OutputStreamWriter . gemaakt benoemde uitvoer samen met de FileOutputStream genoemd bestand.

Hier gebruiken we de standaard tekencodering om tekens naar de uitvoerstroom te schrijven.

We kunnen echter het type tekencodering specificeren (UTF8 of UTF16 ) om gegevens te schrijven.

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

Hier hebben we de Charset . gebruikt class om het type tekencodering op te geven.


Methoden van OutputStreamWriter

De OutputStreamWriter class biedt implementaties voor verschillende methoden die aanwezig zijn in de Writer klasse.

write()-methode

  • write() - schrijft een enkel teken naar de schrijver
  • write(char[] array) - schrijft de karakters van de opgegeven array naar de schrijver
  • write(String data) - schrijft de opgegeven string naar de schrijver

Voorbeeld:OutputStreamWriter om gegevens naar een bestand te schrijven

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

In het bovenstaande voorbeeld hebben we een uitvoerstroomlezer gemaakt met behulp van de bestandsuitvoerstroom. De output stream reader is gekoppeld aan de output.txt bestand.

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

Om gegevens naar het bestand te schrijven, hebben we de write() . gebruikt methode.

Hier, wanneer we het programma uitvoeren, wordt de output.txt bestand is gevuld met de volgende inhoud.

This is a line of text inside the file.

getEncoding()-methode

De getEncoding() methode kan worden gebruikt om het type codering te krijgen dat wordt gebruikt om gegevens naar de uitvoerstroom te schrijven. Bijvoorbeeld,

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

Uitvoer

The character encoding of output1: Cp1252
The character encoding of output2: UTF8

In het bovenstaande voorbeeld hebben we 2 uitvoerstroomschrijvers gemaakt met de naam output1 en output2 .

  • uitvoer1 specificeert niet de tekencodering. Vandaar de getEncoding() methode retourneert de standaard tekencodering.
  • uitvoer2 specificeert de tekencodering, UTF8 . Vandaar de getEncoding() methode retourneert de opgegeven tekencodering.

Opmerking :We hebben de Charset.forName() . gebruikt methode om het type tekencodering op te geven. Ga voor meer informatie naar Java Charset (officiële Java-documentatie).


close() Methode

Om de uitvoerstroomschrijver te sluiten, kunnen we de close() . gebruiken methode. Zodra de close() methode wordt aangeroepen, kunnen we de schrijver niet gebruiken om de gegevens te schrijven.


Andere methoden van OutputStreamWriter

Methode Beschrijving
flush() dwingt om alle gegevens in de schrijver naar de corresponderende bestemming te schrijven
append() voegt het opgegeven teken in bij de huidige schrijver

Ga voor meer informatie naar Java OutputStreamWriter (officiële Java-documentatie).


Java

  1. Java laatste trefwoord
  2. Java-instantie van Operator
  3. Java-erfenis
  4. Java geneste statische klasse
  5. Java anonieme klasse
  6. Java Singleton-klasse
  7. Java-reflectie
  8. Java ArrayList-klasse
  9. Java ObjectOutputStream-klasse
  10. Java-generieken
  11. Java-bestandsklasse