byte[]

1717 ワード

 Serializable , byte[] byte[]  , 

 Serializable 
public void testByte() throws IOException, ClassNotFoundException {
    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    ObjectOutputStream os = null;
    byte[] modelBinary  =null;
    A a = new A();

    try {
        os = new ObjectOutputStream(bout);
        os.writeObject(a);
        modelBinary = bout.toByteArray();
        System.out.println("byte:===="+modelBinary);
    } catch (IOException e) {
        e.printStackTrace();
    }
    ByteArrayInputStream bin = new ByteArrayInputStream(modelBinary);
    ObjectInputStream oin = new ObjectInputStream(bin);
    Object o = oin.readObject();
    A a2 = (A)o;
    System.out.println(a2.name);
}

ByteArrayOutputStreamクラスは、インスタンスを作成するときに、プログラム内にbyte型の配列のバッファを作成し、ByteArrayOutputStreamとByteArrayInputStreamのインスタンスを使用してbyte型データを配列に書き込みまたは読み出します.ネットワーク転送では多くの変数を転送することが多く、ByteArrayOutputStreamを利用してすべての変数を収集し、一度にデータを送信することができます.具体的な使い方は以下の通りです.
ByteArrayOutputStream:メモリバッファのデータをキャプチャし、バイト配列に変換できます.
ByteArrayInputStream:バイト配列を入力ストリームに変換
ByteArrayInputStreamクラスには、2つのデフォルトのコンストラクション関数があります.
ByteArrayInputStream(byte[]b):1バイト配列中のすべてのデータをデータソースとして使用し、プログラムは入力ストリーム方式のようにバイトを読み取ることができ、仮想ファイルと見なし、ファイル方式でその中のデータを読み取ることができる.
ByteArrayInputStream(byte[]b,int offset,int length):配列のoffset番目からlength個というバイトをデータソースとして取り出します.
ByteArrayOutputStreamクラスにも2つのデフォルトのコンストラクション関数があります.
ByteArrayOutputStream():32バイトのバッファを作成する
ByteArrayOutputStream(int):パラメータ指定サイズに基づいてバッファを作成する
この2つのコンストラクション関数で作成されたバッファサイズは、データが多すぎると自動的に増加します.バッファを作成すると、プログラムは仮想ファイルのようにコンテンツを書き込むことができ、コンテンツを書き終わった後にByteArrayOutputStream()を呼び出す方法で、そのコンテンツをバイト配列として返すことができます.