字節數組流
ByteArrayInutStream 和 ByteArrayOutputStream
1) 節點流
2) 數據源或目的地為:字節數組
3) 只有字節流,沒有字符流
作用:
提高空間利用率
壓縮內容,在網絡傳輸時,能有效壓縮傳輸數據的大小,從而提高效率
------------------------------------------------------------------------------------------------------------------------
下面的例子把java對象存為字節數組,再把字節數組讀出來。

1 import java.io.ByteArrayInputStream; 2 import java.io.ByteArrayOutputStream; 3 import java.io.DataOutputStream; 4 import java.io.IOException; 5 import java.io.ObjectInputStream; 6 import java.io.ObjectOutputStream; 7 import java.util.Date; 8 9 public class Test { 10 public static void main(String[] args) { 11 byte [] buf=write();//調用寫對象的方法 12 //調用讀對象的方法 13 read(buf); 14 } 15 public static byte[] write(){ 16 //創建字節數組流對象 17 ByteArrayOutputStream baos=null; 18 ObjectOutputStream oos=null; 19 20 try { 21 baos=new ByteArrayOutputStream();//創建字節數組流對象,目的地是字節數組,底層創建一個長度數為32的字節數組 22 oos=new ObjectOutputStream(baos); 23 oos.writeInt(98); 24 oos.writeDouble(98.5); 25 oos.writeChar('a'); 26 oos.writeBoolean(false); 27 oos.writeObject(new Date(1000)); 28 } catch (IOException e) { 29 // TODO Auto-generated catch block 30 e.printStackTrace(); 31 }finally{ 32 //關閉流 33 if (oos!=null) { 34 try { 35 oos.close(); 36 } catch (IOException e) { 37 // TODO Auto-generated catch block 38 e.printStackTrace(); 39 } 40 } 41 } 42 43 return baos.toByteArray(); 44 } 45 public static void read(byte [] buf){ 46 ByteArrayInputStream bais=null; 47 ObjectInputStream ois=null; 48 //創建對象 49 try { 50 bais=new ByteArrayInputStream(buf); //數據源是byte類型的數組 51 ois=new ObjectInputStream(bais); 52 53 //讀數據 54 System.out.println(ois.readInt()); 55 System.out.println(ois.readDouble()); 56 System.out.println(ois.readChar()); 57 System.out.println(ois.readBoolean()); 58 System.out.println(ois.readObject()); 59 } catch (ClassNotFoundException e) { 60 // TODO Auto-generated catch block 61 e.printStackTrace(); 62 } catch (IOException e) { 63 // TODO Auto-generated catch block 64 e.printStackTrace(); 65 }finally{ 66 67 //關閉流 68 if(ois!=null){ 69 try { 70 ois.close(); 71 } catch (IOException e) { 72 // TODO Auto-generated catch block 73 e.printStackTrace(); 74 } 75 } 76 } 77 } 78 }
設計模式_裝飾器模式-------->https://www.cnblogs.com/xrq730/p/4908940.html
IO流體系總結