Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java ByteArrayInputStream: Praktischer Leitfaden zum Lesen von Byte-Arrays

Java ByteArrayInputStream

Dieser Artikel erklärt, wie man Javas ByteArrayInputStream verwendet, um Daten aus Byte-Arrays zu lesen – mit Konstruktoren, Kernmethoden und praktischen Beispielen.

Was ist ByteArrayInputStream?

Die ByteArrayInputStream Klasse, Teil des java.io Pakets, implementiert InputStream und ermöglicht es Ihnen, ein Byte-Array als Eingabestream zu behandeln. Sie speichert intern eine Kopie des übergebenen Arrays, was zufälligen Zugriff und effizientes Lesen erlaubt.

Java ByteArrayInputStream: Praktischer Leitfaden zum Lesen von Byte-Arrays

Hinweis: Der Stream liest aus dem Array selbst, nicht von einer externen Quelle, daher sind alle Operationen speicherbasiert.

ByteArrayInputStream erstellen

Importieren Sie java.io.ByteArrayInputStream und instanziieren Sie es. Sie können das gesamte Array oder einen Ausschnitt lesen.

ByteArrayInputStream input = new ByteArrayInputStream(byte[] arr);
ByteArrayInputStream input = new ByteArrayInputStream(byte[] arr, int start, int length);

Der zweite Konstruktor liest length Bytes ab Index start.

Kernmethoden

read()

Beispiel: Bytes lesen

import java.io.ByteArrayInputStream;

public class Main {
    public static void main(String[] args) {
        byte[] array = {1, 2, 3, 4};
        try (ByteArrayInputStream input = new ByteArrayInputStream(array)) {
            System.out.print("Gelesene Bytes: ");
            int value;
            while ((value = input.read()) != -1) {
                System.out.print(value + ", ");
            }
            System.out.println();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Ausgabe

Gelesene Bytes: 1, 2, 3, 4, 

available()

Gibt die Anzahl der noch verfügbaren Bytes ohne Blockieren zurück.

import java.io.ByteArrayInputStream;

public class Main {
    public static void main(String[] args) {
        byte[] array = {1, 2, 3, 4};
        try (ByteArrayInputStream input = new ByteArrayInputStream(array)) {
            System.out.println("Initial: " + input.available());
            input.read();
            input.read();
            System.out.println("Nach 2 reads: " + input.available());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Ausgabe

Initial: 4
Nach 2 reads: 2

skip()

Verschiebt die Stream-Position um die angeforderte Anzahl Bytes.

import java.io.ByteArrayInputStream;

public class Main {
    public static void main(String[] args) {
        byte[] array = {1, 2, 3, 4};
        try (ByteArrayInputStream input = new ByteArrayInputStream(array)) {
            input.skip(2);
            System.out.print("Nach skip: ");
            int value;
            while ((value = input.read()) != -1) {
                System.out.print(value + ", ");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Ausgabe

Nach skip: 3, 4, 

close()

Das Schließen eines ByteArrayInputStream ist ein No-Op; der Stream kann danach weiterhin verwendet werden. Die Methode existiert nur für API-Kompatibilität.

Weitere nützliche Methoden

MethodeBeschreibung
mark(int readlimit)Markiert die aktuelle Position.
reset()Kehrt zur letzten markierten Position zurück.
markSupported()Gibt immer true zurück.
finalize()Stellt sicher, dass Ressourcen freigegeben werden (keine Wirkung für diese Klasse).

Für die vollständige API siehe die offizielle Java-Dokumentation.

Java

  1. Java Array-Kopiertechniken: Umfassender Leitfaden
  2. Javas final-Schlüsselwort verstehen: Variablen, Methoden und Klassen
  3. Java instanceof-Operator: Ein umfassender Leitfaden
  4. Java statische verschachtelte Klassen verstehen: Nutzung, Unterschiede und Beispiele
  5. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  6. Java Singleton-Pattern erklärt: Sichere Implementierung und Verwendung
  7. Java Reflection meistern: Klassen, Methoden und Felder zur Laufzeit inspizieren
  8. Java ObjectOutputStream meistern: Serialisierung, Methoden und praktische Beispiele
  9. Java Scanner meistern: Umfassender Leitfaden mit praktischen Beispielen
  10. Java Generics meistern – Wiederverwendbaren, typsicheren Code erstellen