请教一下ObjectOutputStream和ByteArrayOutputStream有什么不同?
问题描述:
ByteArrayOutputStream是把对象序列化成字节流,或者字节数组的形式对吗?可是我用ObjectOutputStream对对象进行序列化的时候,发现最后写成的文件也是二进制文件,那这两个有什么不同呢?还有,ByteArrayOutputSteam可以不依赖于ObjectOutputStream就使用吗?
答
ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。可以使用 ObjectInputStream 读取(重构)对象。通过在流中使用文件可以实现对象的持久存储。如果流是网络套接字流,则可以在另一台主机上或另一个进程中重构对象。
只能将支持 java.io.Serializable 接口的对象写入流中。每个 serializable 对象的类都被编码,编码内容包括类名和类签名、对象的字段值和数组值,以及从初始对象中引用的其他所有对象的闭包。
ByteArrayOutputStream类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据。
答
两个类没有直接的关系