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
read()
- liest das einzelne Byte aus dem Array, das im Eingabestrom vorhanden istread(byte[] array)
- liest Bytes aus dem Eingabestrom und speichert sie im angegebenen Arrayread(byte[] array, int start, int length)
- liest die Anzahl der Bytes gleich length aus dem Stream und speichert im angegebenen Array ab der Position start
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
- Wir haben den
available()
verwendet Methode, um die Anzahl der verfügbaren Bytes im Eingabestrom zu prüfen. - Wir haben dann den
read()
verwendet Methode 2 Mal, um 2 Bytes aus dem Eingabestrom zu lesen. - 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