java的socket发送集合
时间: 2024-12-19 21:15:52 浏览: 1
在Java中,Socket主要用于网络通信,如果需要通过Socket发送集合,通常会序列化集合对象再发送。这里以ArrayList为例:
1. **序列化**:首先,需要将ArrayList转换为Serializable类型的对象,因为Socket本身不支持直接发送集合。你可以选择使用ObjectOutputStream来序列化:
```java
import java.io.*;
public synchronized void sendArrayList(Socket socket, ArrayList<String> data) throws IOException {
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
try {
out.writeObject(data);
} finally {
out.close();
}
}
```
2. **接收**:在接收方,你需要创建一个ObjectInputStream来反序列化接收到的数据:
```java
import java.io.*;
import java.util.ArrayList;
public ArrayList<String> receiveArrayList(Socket socket) throws IOException {
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
try {
return (ArrayList<String>) in.readObject(); // 要记得处理ClassCastException
} finally {
in.close();
}
}
```
阅读全文