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

Java ByteArrayInputStream-Klasse

Java ByteArrayInputStream-Klasse

In diesem Tutorial lernen wir Java ByteArrayInputStream und seine Methoden anhand von Beispielen kennen.

Der ByteArrayInputStream Klasse der java.io Paket kann verwendet werden, um ein Array von Eingabedaten (in Bytes) zu lesen.

Es erweitert die InputStream abstrakte Klasse.

Hinweis :In ByteArrayInputStream , wird der Eingabestream mithilfe des Arrays von Bytes erstellt. Es enthält ein internes Array zum Speichern von Daten dieses bestimmten Byte-Arrays.


Einen ByteArrayInputStream erstellen

Um einen Byte-Array-Eingabestrom zu erstellen, müssen wir den java.io.ByteArrayInputStream importieren Paket zuerst. Sobald wir das Paket importiert haben, können wir wie folgt einen Eingabestrom erstellen.

// Creates a ByteArrayInputStream that reads entire array
ByteArrayInputStream input = new ByteArrayInputStream(byte[] arr);

Hier haben wir einen Eingabestrom erstellt, der vollständige Daten aus arr liest Reihe. Wir können jedoch auch den Eingabestrom erstellen, der nur einige Daten aus dem Array liest.

// Creates a ByteArrayInputStream that reads a portion of array
ByteArrayInputStream input = new ByteArrayInputStream(byte[] arr, int start, int length);

Hier liest der Eingabestrom die Anzahl der Bytes gleich length aus dem Array beginnend mit start Position.


Methoden von ByteArrayInputStream

Die ByteArrayInputStream -Klasse bietet Implementierungen für verschiedene Methoden, die in InputStream vorhanden sind Klasse.

read()-Methode

Beispiel:ByteArrayInputStream zum Lesen von Daten

import java.io.ByteArrayInputStream;

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

    // Creates an array of byte
    byte[] array = {1, 2, 3, 4};

    try {
      ByteArrayInputStream input = new ByteArrayInputStream(array);

      System.out.print("The bytes read from the input stream: ");

      for(int i= 0; i < array.length; i++) {

        // Reads the bytes
        int data = input.read();
        System.out.print(data + ", ");
      }
      input.close();
    }

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

Ausgabe

The bytes read from the input stream: 1, 2, 3, 4,

Im obigen Beispiel haben wir einen Byte-Array-Eingabestream mit dem Namen input erstellt .

ByteArrayInputStream input = new ByteArrayInputStream(array);

Hier enthält der Eingabestream alle Daten aus dem angegebenen Array. Um Daten aus dem Eingabestrom zu lesen, haben wir den read() verwendet Methode.


available()-Methode

Um die Anzahl der verfügbaren Bytes im Eingabestrom zu erhalten, können wir den available() verwenden Methode. Zum Beispiel

import java.io.ByteArrayInputStream;

public class Main {

  public static void main(String args[]) {

    // Creates an array of bytes
    byte[] array = { 1, 2, 3, 4 };

    try {
      ByteArrayInputStream input = new ByteArrayInputStream(array);

      // Returns the available number of bytes
      System.out.println("Available bytes at the beginning: " + input.available());

      // Reads 2 bytes from the input stream
      input.read();
      input.read();

      // Returns the available number of bytes
      System.out.println("Available bytes at the end: " + input.available());

      input.close();
    }

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

Ausgabe

Available bytes at the beginning: 4
Available bytes at the end: 2

Im obigen Beispiel

  1. Wir haben den available() verwendet Methode, um die Anzahl der verfügbaren Bytes im Eingabestrom zu prüfen.
  2. Wir haben dann den read() verwendet Methode 2 Mal, um 2 Bytes aus dem Eingabestrom zu lesen.
  3. Nun, nachdem wir die 2 Bytes gelesen haben, haben wir die verfügbaren Bytes überprüft. Diesmal verringerten sich die verfügbaren Bytes um 2.

skip()-Methode

Um die angegebene Anzahl von Bytes zu verwerfen und zu überspringen, können wir den skip() verwenden Methode. Zum Beispiel

import java.io.ByteArrayInputStream;

public class Main {

  public static void main(String args[]) {

    // Create an array of bytes
    byte[] array = { 1, 2, 3, 4 };
    try {
      ByteArrayInputStream input = new ByteArrayInputStream(array);

      // Using the skip() method
      input.skip(2);
      System.out.print("Input stream after skipping 2 bytes: ");

      int data = input.read();
      while (data != -1) {
        System.out.print(data + ", ");
        data = input.read();
      }

      // close() method
      input.close();
    }

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

Ausgabe

Input stream after skipping 2 bytes: 3, 4,

Im obigen Beispiel haben wir skip() verwendet Methode zum Überspringen von 2 Datenbytes aus dem Eingabestream. Daher 1 und 2 werden nicht aus dem Eingabestrom gelesen.


close()-Methode

Um den Eingabestrom zu schließen, können wir den close() verwenden Methode.

Allerdings ist die close() Methode hat keine Wirkung in ByteArrayInputStream Klasse. Wir können die Methoden dieser Klasse auch nach close() verwenden Methode aufgerufen wird.


Andere Methoden von ByteArrayInputStream

Methoden Beschreibungen
finalize() stellt sicher, dass der close() Methode heißt
mark() markiert die Position im Eingabestrom, bis zu der Daten gelesen wurden
reset() gibt die Kontrolle an den Punkt im Eingabestrom zurück, an dem die Markierung gesetzt wurde
markSupported() überprüft, ob der Eingabestrom mark() unterstützt und reset()

Um mehr zu erfahren, besuchen Sie Java ByteArrayInputStream (offizielle Java-Dokumentation).


Java

  1. Java-Kopie-Arrays
  2. Letztes Java-Schlüsselwort
  3. Java-Instanz des Operators
  4. Verschachtelte statische Java-Klasse
  5. Anonyme Java-Klasse
  6. Java-Singleton-Klasse
  7. Java-Reflexion
  8. Java ObjectOutputStream-Klasse
  9. Java-Scanner-Klasse
  10. Java-Generika