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("你好!");
}
}
JAVA IO流實現字節數組與任何基本類型和引用類型的相互轉換
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.