java類ByteArrayOutputStream的toString()方法使用

   最近在看馬士兵老師的java基礎,查看api時看到'ByteArrayOutputStream'的方法,`toString()`方法,當時認爲就是把寫入ByteArrayOutputStream的字節數據轉換爲字符串,當時還覺得這個方法很爽,隨便往ByteArrayOutputStream裏面寫數據,在調用這個方法,就會把寫入的數據轉換成字符串返回,當時就在電腦上寫了個例子程序試試,代碼如下:
import java.io.*
public class TestByteArray{
    public static void main(String[] args)
        ByteArrayOutputStream baos = 
                 new ByteArrayOutputStream();
        DataOutputStream dos= 
                 new DataOutputStream(baos);
        try{
            dos.writeBoolean(true);
            dos.writeInt(3456);
            dos.writeFloat(1.345f)
            dos.writeChars("sdjfkl");
            byte[] bArray = baos.toByteArray();
            for(byte b : bArray){
                System.out.print(b + " ");
            }
        }
     }
}

想當然的以爲會把寫入的那些數據自動轉換爲字符串輸出,但是,實際輸出卻是:
這裏寫圖片描述
一串亂碼,後來又去查看api,仔細看了下,說這個方法如果不指定傳入的字符解碼方式,它會以jdk默認的解碼字符集解碼。而我的系統並沒有這種字符(筆者的是Ubuntu15.10),所以造成了亂碼的出現。
當然,這個方法現在已經被棄用了。
這裏寫圖片描述
之所以還寫這篇博文,一是第一次使用Markdown寫博文,想熟悉下語法,二是提醒自己以後要注意認真看語法。不要又在一些棄用的方法裏折騰。(個人覺得,既然這個方法jdk都啓棄用了,那麼這個方法相對就不是很好,不值得特別關注。)

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