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 ByteArrayOutputStream Class

Java ByteArrayOutputStream Class

In deze zelfstudie leren we over Java ByteArrayOutputStream en zijn methoden met behulp van voorbeelden.

De ByteArrayOutputStream klasse van de java.io pakket kan worden gebruikt om een ​​array van uitvoergegevens te schrijven (in bytes).

Het verlengt de OutputStream abstracte klasse.

Opmerking :In ByteArrayOutputStream onderhoudt een interne array van bytes om de gegevens op te slaan.


Maak een ByteArrayOutputStream

Om een ​​bytearray-uitvoerstroom te maken, moeten we de java.io.ByteArrayOutputStream . importeren pakket eerst. Zodra we het pakket hebben geïmporteerd, kunnen we als volgt een uitvoerstroom maken.

// Creates a ByteArrayOutputStream with default size
ByteArrayOutputStream out = new ByteArrayOutputStream();

Hier hebben we een uitvoerstroom gemaakt die gegevens naar een array van bytes schrijft met een standaardgrootte van 32 bytes. We kunnen echter de standaardgrootte van de array wijzigen.

// Creating a ByteArrayOutputStream with specified size
ByteArrayOutputStream out = new ByteArrayOutputStream(int size);

Hier, de maat specificeert de lengte van de array.


Methoden van ByteArrayOutputStream

De ByteArrayOutputStream class biedt de implementatie van de verschillende methoden die aanwezig zijn in de OutputStream klasse.

write()-methode

  • write(int byte) - schrijft de opgegeven byte naar de uitvoerstroom
  • write(byte[] array) - schrijft de bytes van de opgegeven array naar de uitvoerstroom
  • write(byte[] arr, int start, int length) - schrijft het aantal bytes gelijk aan lengte naar de uitvoerstroom van een array beginnend vanaf de positie start
  • writeTo(ByteArrayOutputStream out1) - schrijft de volledige gegevens van de huidige uitvoerstroom naar de opgegeven uitvoerstroom

Voorbeeld:ByteArrayOutputStream om gegevens te schrijven

import java.io.ByteArrayOutputStream;

class Main {
  public static void main(String[] args) {

    String data = "This is a line of text inside the string.";

    try {
      // Creates an output stream
      ByteArrayOutputStream out = new ByteArrayOutputStream();
      byte[] array = data.getBytes();

      // Writes data to the output stream
      out.write(array);

      // Retrieves data from the output stream in string format
      String streamData = out.toString();
      System.out.println("Output stream: " + streamData);

      out.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Uitvoer

Output stream: This is a line of text inside the string.

In het bovenstaande voorbeeld hebben we een byte-array-uitvoerstroom gemaakt met de naam output .

ByteArrayOutputStream output = new ByteArrayOutputStream();

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

Opmerking :De getBytes() methode die in het programma wordt gebruikt, converteert een string naar een array van bytes.


Toegang tot gegevens van ByteArrayOutputStream

  • toByteArray() - geeft de array terug die aanwezig is in de uitvoerstroom
  • toString() - retourneert de volledige gegevens van de uitvoerstroom in tekenreeksvorm

Bijvoorbeeld,

import java.io.ByteArrayOutputStream;

class Main {
  public static void main(String[] args) {
    String data = "This is data.";

    try {
      // Creates an output stream
      ByteArrayOutputStream out = new ByteArrayOutputStream();

      // Writes data to the output stream
      out.write(data.getBytes());

      // Returns an array of bytes
      byte[] byteData = out.toByteArray();
      System.out.print("Data using toByteArray(): ");
      for(int i=0; i<byteData.length; i++) {
        System.out.print((char)byteData[i]);
      }

      // Returns a string
      String stringData = out.toString();
      System.out.println("\nData using toString(): " + stringData);

      out.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Uitvoer

Data using toByteArray(): This is data.
Data using toString(): This is data.

In het bovenstaande voorbeeld hebben we een array van bytes gemaakt om de gegevens op te slaan die worden geretourneerd door de toByteArray() methode.

We hebben vervolgens de for-lus gebruikt om toegang te krijgen tot elke byte uit de array. Hier wordt elke byte geconverteerd naar het overeenkomstige teken met behulp van typecasting.


close()-methode

Om de uitvoerstroom te sluiten, kunnen we de close() . gebruiken methode.

Echter, de close() methode heeft geen effect in ByteArrayOutputStream klas. We kunnen de methoden van deze klasse zelfs gebruiken na de close() methode wordt aangeroepen.


Andere methoden van ByteArrayOutputStream

Methoden Beschrijvingen
size() retourneert de grootte van de array in de uitvoerstroom
flush() wist de uitvoerstroom

Ga voor meer informatie naar Java ByteArrayOutputStream (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