Aktionen

ByteArrayInputStream

Aus Java Tutorial - Java lernen

Die Klasse ByteArrayInputStream ermöglicht es, einen Puffer im Speicher als InputStream zu verwenden. Die Eingangsquelle ist ein Byte-Array.

Nummer Konstruktor Beschreibung
1 ByteArrayInputStream(byte [] a) Dieser Konstruktor akzeptiert ein Byte-Array als Parameter.
2 ByteArrayInputStream(byte [] a, int off, int len) Dieser Konstruktor nimmt ein Array von Bytes und zwei ganzzahlige Werte, wobei off das erste zu lesende Byte und len die Anzahl der zu lesenden Bytes ist.

Sobald Sie das ByteArrayInputStream-Objekt in der Hand haben, gibt es eine Liste von Hilfsmethoden, die zum Lesen des Streams oder zum Ausführen anderer Operationen auf dem Stream verwendet werden können.

Nummer Methode Beschreibung
1 public int read() Diese Methode liest das nächste Datenbyte aus dem InputStream. Gibt ein int als nächstes Datenbyte zurück. Wenn es das Ende der Datei ist, gibt sie -1 zurück.
2 public int read(byte[] r, int off, int len) Diese Methode liest bis zur Anzahl len von Bytes beginnend mit off aus dem Eingabestrom in ein Array ein. Gibt die Gesamtzahl der gelesenen Bytes zurück. Wenn es das Ende der Datei ist, wird -1 zurückgegeben.
3 public int available() Gibt die Anzahl der Bytes an, die aus diesem Dateieingabestrom gelesen werden können. Gibt einen int zurück, der die Anzahl der zu lesenden Bytes angibt.
4 public void mark(int read) Dadurch wird die aktuelle markierte Position im Strom festgelegt. Der Parameter gibt die Höchstgrenze der Bytes an, die gelesen werden können, bevor die markierte Position ungültig wird.
5 public long skip(long n) Überspringt 'n' Anzahl von Bytes aus dem Stream. Dies gibt die tatsächliche Anzahl der übersprungenen Bytes zurück.

Beispiel

Es folgt ein Beispiel zur Demonstration von ByteArrayInputStream und ByteArrayOutputStream.

import java.io.*;
public class ByteStreamTest {

   public static void main(String args[])throws IOException {
      ByteArrayOutputStream bOutput = new ByteArrayOutputStream(12);

      while( bOutput.size()!= 10 ) {
         // Ruft die Eingaben des Benutzers ab
         bOutput.write("hello".getBytes()); 
      }
      byte b [] = bOutput.toByteArray();
      System.out.println("Print the content");
      
      for(int x = 0 ; x < b.length; x++) {
         // Ausgeben der Zeichen
         System.out.print((char)b[x]  + "   "); 
      }
      System.out.println("   ");
      
      int c;
      ByteArrayInputStream bInput = new ByteArrayInputStream(b);
      System.out.println("Converting characters to Upper case " );
      
      for(int y = 0 ; y < 1; y++) {
         while(( c = bInput.read())!= -1) {
            System.out.println(Character.toUpperCase((char)c));
         }
         bInput.reset(); 
      }
   }
}

Nachfolgend sehen Sie den Beispieldurchlauf des obigen Programms:

Ausgabe

Print the content
h   e   l   l   o   h   e   l   l   o      
Converting characters to Upper case 
H
E
L
L
O
H
E
L
L
O