只写一个ByteArrayOutputStream不行吗?

import java.io.*;

public class ByteArray{
    public static void main(String[] args){
        try{    
            ByteArrayOutputStream bao = new ByteArrayOutputStream();
            DataOutputStream dos = new DataOutputStream(bao);
            dos.writeDouble(Math.random());
            ByteArrayInputStream bais = new ByteArrayInputStream(bao.toByteArray());
            DataInputStream dis = new DataInputStream(bais);
            System.out.println(dis.readDouble());
            dos.close();dis.close();
        }catch(IOException e){
            System.out.println("error!");
        }
    }   
}

为什么既要写ByteArrayOutputStream,还要写DataOutputStream呢?只写其中一个难道不行吗?感觉很奇怪啊,求朋友解答一下啊

ByteArrayOutputStream只能输出byte,用DataOutputStream包装可以输出更多的数据类型,只写其中一个不是不可以,那你要自己把你输出的类型转换成byte数组。

可以瞅下设计模式的装饰者模式