ByteArrayOutputStream 與 ObjectOutputStream 轉換

 1 實現

ByteArrayOutputStream   bos   =   new   ByteArrayOutputStream();
        ObjectOutputStream   oos   =   new   ObjectOutputStream(bos);
        oos.writeByte(1);
        oos.writeDouble(1.0);
        oos.writeObject("康健");
       
        byte   []   bytes   =   bos.toByteArray();
        System.out.println(bytes.length);
        InputStream   bis   =   new   ByteArrayInputStream(bytes);
        ObjectInputStream   ois   =   new   ObjectInputStream(bis);
        System.out.println(ois.readByte());
        System.out.println(ois.readDouble());
        Object   obj   =   ois.readObject();

        System.out.println( "obj   :   "   +   obj);

2 爲什麼網絡傳輸如 用字節流 而不用 字符流

==================我們還可以看到:============
Reader類的read()方法返回類型爲int :作爲整數讀取的字符(佔兩個字節共16位),範圍在 0 到 65535 之間 (0x00-0xffff),如果已到達流的末尾,則返回 -1


inputStream的read()雖然也返回int,但由於此類是面向字節流的,一個字節佔8個位,所以返回 0 到 255 範圍內的 int 字節值。如果因爲已經到達流末尾而沒有可用的字節,則返回值 -1。因此對於不能用0-255來表示的值就得用字符流來讀取!比如說漢字...至此,有些人可能就會產生一個問題:既然返回結果只能在0-255之間的值,那何返回byte型的呢? 這個問題提得很好,我先頂你一下,可惜本人現在也沒搞懂,不過本人會急時補充!

 

還有爲什麼 bytes   能 還原成相應的對象???

爲什麼??? 爲什麼哈

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章