JAVA IO流實現字節數組與任何基本類型和引用類型的相互轉換

package com.jyd.demo;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

/**
 * 
 * 類名: IODemo03 
 * 備註: 實現字節數組和任何基本類型和引用類型的相互轉換。
 * 使用ByteArrayInutStream和ByteArrayOutputStream。
 * 時間: 2017年4月9日 下午4:56:33 
 * @version 
 * @since JDK 1.8
 */
public class IODemo03 {
    boolean flag = false;
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        IODemo03 demo03 = new IODemo03();
        test01(demo03.flag);

        Persons p = new Persons();
        test02(p);
    }
    //字節數組和布爾類型的轉換  其它基本數據類型類似
    public static void test01(boolean flag) throws IOException{
        //輸出流 輸出一個boolean類型的數據
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(baos);
        dos.writeBoolean(flag);
        byte[] bytes = baos.toByteArray();
        //輸入流 讀取一個boolean類型的數據
        ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
        DataInputStream dis = new DataInputStream(bais);
        boolean f = dis.readBoolean();
        System.out.println(f);
        //關閉流釋放資源
        dos.close();
        bais.close();
    }
    //字節數組和引用數據類型之間的轉換
    public static void test02(Persons p) throws IOException, ClassNotFoundException{
        //輸出流 輸出一個Persons類型的數據
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(baos);
        oos.writeObject(p); //對象序列化
        byte[] bytes = baos.toByteArray();
        //輸入流 讀取一個boolean類型的數據
        ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
        ObjectInputStream ois = new ObjectInputStream(bais);
        Persons p1 = (Persons)ois.readObject();
        System.out.println(p1);
        //關閉流釋放資源
        oos.close();
        bais.close();
    }
}

class Persons implements Serializable{
    public Persons(){
        System.out.println("你好!");
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章