问题描述
- 只写一个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数组。
解决方案二:
可以瞅下设计模式的装饰者模式
时间: 2024-11-08 17:28:22