Wir müssen wissen, dass Quelle und Ziel des Streams neben Dateien auch der Computerspeicher sein können.
Der Byte-Array-Eingabestream ByteArrayInputStream und der Byte-Array-Ausgabestream ByteArrayOutputStream verwenden Byte-Arrays als Quelle bzw. Ziel des Streams.
ByteArrayInputStream(byte[]buf);ByteArrayInputStream(byte[]buf,intoffset,intlength);
Die Quelle des vom ersten Konstruktor erstellten Byte-Array-Streams sind alle Byte-Einheiten des durch den Parameter buf angegebenen Arrays. Die Quelle des vom zweiten Konstruktor erstellten Byte-Array-Streams ist das durch buf angegebene Array, in der Reihenfolge ab Offset. Längen-Byte-Einheiten.
Der Byte-Array-Eingabestream ruft die Methode public int read() auf und gibt den gelesenen Bytewert zurück kann die durch Parameter len angegebene Anzahl von Bytes sequentiell aus der Quelle lesen und die gelesenen Bytes in dem durch Parameter b angegebenen Array speichern. Der Parameter off gibt die Startposition von Array b an, an der die gelesenen Bytes gespeichert werden sollen Anzahl der gelesenen Bytes. Wenn keine Bytes gelesen wurden, gibt die Lesemethode -1 zurück.
ByteArrayOutputStream();ByteArrayOutputStream(intsize);
Der vom ersten Konstruktor erstellte Byte-Array-Ausgabestream verweist auf einen Puffer mit einer Standardgröße von 32 Byte. Wenn die Anzahl der vom Ausgabestream in den Puffer geschriebenen Bytes größer ist als die des Puffers, erhöht sich die Kapazität des Puffers automatisch.
Die anfängliche Größe des Puffers, auf den der vom zweiten Konstruktor erstellte Byte-Array-Ausgabestream zeigt, wird durch den Parameter size angegeben. Wenn die Anzahl der vom Ausgabestream in den Puffer geschriebenen Bytes größer ist als die des Puffers, wird die Kapazität des Puffers automatisch erhöht Zunahme.
Der Byte-Array-Ausgabestream ruft public void write(int b) auf; die Methode kann nacheinander ein Byte in den Puffer schreiben; die Methode ruft public void write(byte[] b, int off, int len) auf; in Die angegebenen len-Bytes werden nacheinander in den Puffer geschrieben, und der Parameter off gibt die Startposition der von b geschriebenen Bytes an. Durch Aufrufen der öffentlichen Methode byte[] können alle in den Puffer geschriebenen Ausgabeströme zurückgegeben werden .
Dem Byte-Array-Stream entsprechen die CharArrayReader-Klasse und die CharArrayWriter-Klasse. Der Zeichen-Array-Stream verwendet Zeichen-Arrays als Quelle bzw. Ziel des Streams.
Verwenden Sie beispielsweise einen Array-Stream, um „Mittherbstfest“ und „Fröhliches Mittherbstfest“ in den Speicher (den Puffer des Ausgabestreams) zu schreiben und dann die geschriebenen Daten aus dem Speicher zu lesen:
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){try{ByteArrayOutputStreamoutByte=newByteArrayOutputStream();byte[]byteContent=mid-autumnfestival.getBytes();outByte.write(byteContent);ByteArrayInputStreaminByte=newByteArrayInputStream(outByte.toByteArray ());bytebackByte[]=newbyte[outByte.toByteArray().length];inByte.read(backByte);System.out.println(newString(backByte));CharArrayWriteroutChar=newCharArrayWriter();char[]charContent=Mid -Herbstfest Happy.toCharArray();outChar.write(charContent);CharArrayReaderinChar=newCharArrayReader(outChar.toCharArray());charbackChar[]=newchar[outChar.toCharArray().length];inChar.read(backChar);System .out. println(newString(backChar));}catch(IOExceptionexp){}}}