Java ByteArrayInputStreamクラス

Java 流(Stream)Java ストリーム(Stream)


バイト配列入力ストリームは、メモリ内にバイト配列バッファを作成し、入力ストリームから読み取ったデータはそのバイト配列バッファに保存されます。バイト配列入力ストリームオブジェクトを作成するには、次のようないくつかの方法があります。

バイト配列をパラメータとして受け取って作成します:

ByteArrayInputStream bArray = new ByteArrayInputStream(byte [] a);

もう1つの作成方法は、バイト配列と2つの整数変数 off、len を受け取るものです。off は最初に読み取るバイトを表し、len は読み取るバイトの長さを表します。

ByteArrayInputStream bArray = new ByteArrayInputStream(byte []a, 
                                                       int off, 
                                                       int len)

バイト配列入力ストリームオブジェクトの作成に成功したら、次のリストのメソッドを参照して、ストリームに対して読み取り操作やその他の操作を行うことができます。

番号 メソッド説明
1 public int read()       
この入力ストリームから次のデータバイトを読み取ります。
2 public int read(byte[] r, int off, int len)
最大でlenのデータバイトをこの入力ストリームからバイト配列に読み取ります。
3 public int available()
この入力ストリームからブロックせずに読み取ることができるバイト数を返します。
4 public void mark(int read)
ストリーム内の現在のマーク位置を設定します。
5 public long skip(long n)
この入力ストリームからn入力バイトをスキップします。

例

以下の例は、ByteArrayInputStream と 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();
      }
   }
}

上記の例をコンパイルして実行した結果は次のとおりです:

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

Java 流(Stream)Java ストリーム(Stream)

その他の拡張