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: Methodes, gebruik en praktische voorbeelden

Java ByteArrayOutputStream onder de knie

Deze tutorial verkent Java's ByteArrayOutputStream, de kernmethoden en praktische voorbeelden om je te helpen byte-level output efficiënt te schrijven.

De ByteArrayOutputStream-klasse in het java.io-pakket stelt je in staat om data in een interne byte-array te schrijven die automatisch groeit zoals nodig. Het breidt de abstracte OutputStream-klasse uit, wat het een veelzijdig hulpmiddel maakt voor in-memory byte-manipulatie.

Let op: De klasse onderhoudt een interne buffer die op aanvraag uitbreidt, dus je hoeft meestal de capaciteit niet vooraf te definiëren tenzij je de exacte benodigde grootte kent.

Een ByteArrayOutputStream aanmaken

Om een ByteArrayOutputStream aan te maken, importeer java.io.ByteArrayOutputStream en instantieer het. Standaard begint de buffer op 32 bytes:

// Standaard grootte
ByteArrayOutputStream out = new ByteArrayOutputStream();

Je kunt ook een initiële capaciteit opgeven als je een grote payload verwacht:

// Aangepaste grootte
ByteArrayOutputStream out = new ByteArrayOutputStream(int grootte);

De grootte-parameter stelt de initiële bufferlengte in bytes in.

Kernmethoden van ByteArrayOutputStream

Als OutputStream-implementatie biedt ByteArrayOutputStream verschillende essentiële methoden:

write()-methode

  • write(int b) – schrijft een enkele byte naar de stream
  • write(byte[] b) – schrijft een volledige byte-array
  • write(byte[] b, int off, int len) – schrijft len bytes uit de array beginnend bij index off
  • writeTo(ByteArrayOutputStream out1) – kopieert de huidige buffer naar een andere ByteArrayOutputStream

Voorbeeld: Data schrijven naar ByteArrayOutputStream

import java.io.ByteArrayOutputStream;

class Main {
    public static void main(String[] args) {
        String data = "Dit is een regel tekst in de string.";
        try {
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            byte[] array = data.getBytes();
            out.write(array);
            String streamData = out.toString();
            System.out.println("Output stream: " + streamData);
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Output

Output stream: Dit is een regel tekst in de string.

In dit voorbeeld zet write() de byte-array in de stream, en haalt toString() de geaccumuleerde data op als tekst.

Data benaderen vanuit ByteArrayOutputStream

  • toByteArray() – retourneert een kopie van de interne byte-array
  • toString() – converteert de buffer naar een String met het platformstandaard-charset

Hieronder demonstreert beide methoden:

import java.io.ByteArrayOutputStream;

class Main {
    public static void main(String[] args) {
        String data = "Dit is data.";
        try {
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            out.write(data.getBytes());
            byte[] byteData = out.toByteArray();
            System.out.print("Data met toByteArray(): ");
            for (int i = 0; i < byteData.length; i++) {
                System.out.print((char) byteData[i]);
            }
            String stringData = out.toString();
            System.out.println("\nData met toString(): " + stringData);
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Output

Data met toByteArray(): Dit is data.
Data met toString(): Dit is data.

Hier casten we elke byte naar een karakter voor weergave, wat illustreert hoe de onderliggende array naar tekst afbeeldt.

close()-methode

Het aanroepen van close() op een ByteArrayOutputStream heeft geen nadelig effect; de stream blijft bruikbaar. Dit gedrag sluit aan bij het ontwerp voor in-memory buffers waar geen externe bronnen vrijgegeven hoeven te worden.

Extra methoden

MethodeBeschrijving
size()Retourneert het aantal bytes dat tot nu toe geschreven is
flush()Reset de interne buffer, effectief de stream leegmakend

Voor geavanceerd gebruik, raadpleeg de officiële Java SE-documentatie: Java ByteArrayOutputStream (officiële documentatie).

Java

  1. Java's final-sleutelwoord begrijpen: variabelen, methoden en klassen
  2. Java instanceof operator: een uitgebreide gids
  3. Java-erfenis meesteren: concepten, typen en praktische voorbeelden
  4. Java geneste static classes begrijpen: gebruik, verschillen en voorbeelden
  5. Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
  6. Java Singleton patroon uitgelegd: hoe veilig te implementeren en gebruiken
  7. Java Reflectie meesteren: klassen, methoden en velden inspecteren tijdens runtime
  8. Java ArrayList meesteren: operaties, methoden en best practices
  9. Java ObjectOutputStream: Serialisatie, methoden en praktische voorbeelden
  10. Java Generics: Herbruikbare, type-veilige code bouwen
  11. Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen