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都启弃用了,那么这个方法相对就不是很好,不值得特别关注。)

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