Java ByteArrayInputStream-Klasse
Der Byte-Array-Eingabestream erstellt einen Byte-Array-Puffer im Speicher, und die aus dem Eingabestream gelesenen Daten werden in diesem Byte-Array-Puffer gespeichert. Es gibt mehrere Möglichkeiten, ein Byte-Array-Eingabestream-Objekt zu erstellen.
Erstellen, indem ein Byte-Array als Parameter akzeptiert wird:
ByteArrayInputStream bArray = new ByteArrayInputStream(byte [] a);
Eine andere Möglichkeit, es zu erstellen, besteht darin, ein Byte-Array und zwei ganzzahlige Variablen, off und len, zu akzeptieren, wobei off das erste zu lesende Byte und len die Länge der zu lesenden Bytes angibt.
ByteArrayInputStream bArray = new ByteArrayInputStream(byte []a,
int off,
int len)
Nachdem Sie erfolgreich ein Byte-Array-Eingabestream-Objekt erstellt haben, können Sie die Methoden in der folgenden Liste verwenden, um Leseoperationen oder andere Operationen auf dem Stream auszuführen.
| Nein. | Methodenbeschreibung |
|---|---|
| 1 |
public int read() Liest das nächste Datenbyte aus diesem Eingabestream. |
| 2 |
public int read(byte[] r, int off, int len) Liest bis zu lenDatenbytes aus diesem Eingabestream in ein Byte-Array. |
| 3 |
public int available() Gibt die Anzahl der Bytes zurück, die aus diesem Eingabestream gelesen werden können, ohne zu blockieren. |
| 4 |
public void mark(int read) Setzt die aktuelle markierte Position im Stream. |
| 5 |
public long skip(long n) Überspringt nEingabebytes aus diesem Eingabestream. |
Beispiel
Das folgende Beispiel demonstriert die Verwendung 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 ) {
// 获取用户输入值
bOutput.write(System.in.read());
}
byte b [] = bOutput.toByteArray();
System.out.println("Print the content");
for(int x= 0 ; x < b.length; x++) {
// 打印字符
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();
}
}
}
Die Ausgabe des obigen Beispiels ist wie folgt:
asdfghjkly Print the content a s d f g h j k l y Converting characters to Upper case A S D F G H J K L Y
Andere Erweiterungen
Java-Stream