java - 在 java 中序列化一个 HashMap 以将它从服务器传递到 java 中的客户端

标签 java client-server

我正在用 Java 编写服务器/客户端应用程序。我在服务器端做一些数据处理,然后将其存储在 HashMap 中。将 HashMap 传递给客户端的最佳方式是什么?

最佳答案

最直接的解决方案是使用 ObjectOutputStreamObjectInputStream 对其进行序列化/反序列化

try {
    ...
    final Map<A, B> yourMap = ...; // Map to send
    final OutputStream yourOutputStream = ...; // OutputStream where to send the map in case of network you get it from the Socket instance.
    final ObjectOutputStream mapOutputStream = new ObjectOutputStream(yourOutputStream);
    mapOutputStream.writeObject(yourMap);
    ...
} finally {
    outputStream.close();
}

并接收它:

try {
    ...
    final InputStream yourInputStream = ...; // InputStream from where to receive the map, in case of network you get it from the Socket instance.
    final ObjectInputStream mapInputStream = new ObjectInputStream(yourInputStream);
    final Map<A, B> yourMap = (Map) mapInputStream.readObject();
    ...
} finally {
    mapInputStream.close();
}

请注意,这不需要任何外部库。

关于java - 在 java 中序列化一个 HashMap 以将它从服务器传递到 java 中的客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20199493/

相关文章:

java - 如何从 HttpServletRequest 获取客户端在 java 中的时区?

java - Android @Override 用法

java - 如何解析可能具有不同日期格式的字符串输入?

java - 为什么ServerSocket对象的accept方法返回具有不同端口的Socket对象

连接被拒绝错误

java - 编写桌面 GUI 客户端与服务器通信

c# - WCF 在没有 IIS 的情况下与多个客户端通信

java - Android - 显示不同日期格式的月份名称

使用 poll() 检测连接丢失

java - 在服务器关闭连接之前,客户端不会收到响应消息(Java)