ファイルだけでなく、ストリームの送信元と送信先がコンピューターのメモリである場合もあることを知っておく必要があります。
バイト配列入力ストリーム ByteArrayInputStream とバイト配列出力ストリーム ByteArrayOutputStream は、それぞれストリームのソースと宛先としてバイト配列を使用します。
ByteArrayInputStream(byte[]buf);ByteArrayInputStream(byte[]buf,intoffset,intlength);
最初のコンストラクターによって構築されたバイト配列ストリームのソースは、パラメーター buf で指定された配列のすべてのバイト単位です。2 番目のコンストラクターによって構築されたバイト配列ストリームのソースは、オフセットから順に取得された buf で指定された配列です。長さバイト単位。
バイト配列入力ストリームは public int read() を呼び出します。このメソッドはソースからバイトを順次読み取り、読み取ったバイト値を返します。 call public int read(byte[] b,int off,int len );パラメータ len で指定されたバイト数をソースから順番に読み取り、読み取ったバイトをパラメータ b で指定された配列に格納できます。パラメータ off は、読み取ったバイトを格納する配列 b の開始位置を指定します。このメソッドは実際のバイト数を返します。読み取られたバイト数。読み取られたバイトがない場合、read メソッドは -1 を返します。
ByteArrayOutputStream();ByteArrayOutputStream(intsize);
最初のコンストラクターによって構築されたバイト配列出力ストリームは、デフォルト サイズが 32 バイトのバッファーを指します。出力ストリームによってバッファーに書き込まれるバイト数がバッファーより大きい場合、バッファーの容量は自動的に増加します。
2 番目のコンストラクターによって構築されたバイト配列出力ストリームによって指定されるバッファーの初期サイズは、パラメーター サイズによって指定されます。出力ストリームによってバッファーに書き込まれるバイト数がバッファーよりも大きい場合、バッファーの容量は自動的に変更されます。増加。
バイト配列出力ストリームは public void write(int b) を呼び出します。メソッドはバッファにバイトを連続的に書き込むことができます。メソッドは public void write(byte[] b, int off, int len) を呼び出します。 in 指定された len バイトがバッファに順次書き込まれ、パラメータ off は b から書き込まれるバイトの開始位置を指定します。 public byte[] toByteArray() メソッドを呼び出すと、バッファに書き込まれたすべての出力ストリームを返すことができます。 。
バイト配列ストリームに対応するのは、文字配列ストリームの CharArrayReader クラスと CharArrayWriter クラスです。文字配列ストリームは、それぞれストリームのソースと宛先として文字配列を使用します。
たとえば、配列ストリームを使用して、「中秋節」と「ハッピー中秋節」をメモリ (出力ストリームのバッファ) に書き込み、書き込まれたデータをメモリから読み取ります。
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 -秋祭り Happy.toCharArray();outChar.write(charContent);CharArrayReaderinChar=newCharArrayReader(outChar.toCharArray());charbackChar[]=newchar[outChar.toCharArray().length];inChar.read(backChar);System .out.println(newString(backChar));}catch(IOExceptionexp){}}}