java的objectoutputstream可以发送集合
时间: 2024-12-19 08:15:52 浏览: 3
在Java中,`ObjectOutputStream`是一个用于将对象序列化并写入到字节流中的类。它允许我们通过将其转换为字节序列形式,将集合等复杂数据结构发送到另一个程序或存储设备。当你想要发送一个集合(比如List、Set或Map),首先需要做的是让其满足Serializable接口,因为`ObjectOutputStream`只能处理实现了Serializable的对象。
以下是基本步骤:
1. 将集合转换为Serializable对象:如果集合元素不是Serializable,你需要提供一个适配器,如`Collections serializableWrapper`,或者让集合中的每个元素都实现Serializable。
```java
List<MySerializableClass> list = ...;
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("output.txt"));
oos.writeObject(list);
oos.close();
```
2. 反序列化:接收端可以创建一个`ObjectInputStream`来读取之前写入的数据,并恢复出原来的集合。
```java
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("output.txt"));
List<MySerializableClass> deserializedList = (List<MySerializableClass>)ois.readObject();
ois.close();
```
阅读全文