清理地图重新分析地图

时间:2011-01-14 00:15:23

标签: java parsing sockets serialization map

假设我有一个属性Map,我想要一个String表示。 toString以{key = value,...}的形式购买此内容。我需要通过电线发送这些数据并将其重新分析到另一端的Map中。考虑到数据中可能包含逗号,最好的方法是什么?

此外,还有其他任何我完全缺失的技术吗?如果我可以通过电线本身发送物体,这将是一个美妙的。不过,我想避免使用RMI。

4 个答案:

答案 0 :(得分:4)

您是否考虑过使用Java序列化?

如果地图中的键和值非常简单,那么你应该是金色的。 ObjectOutputStream和ObjectInputStream将帮助你。

它的大小和速度并不是非常高效,但实现起来非常快。

编辑:非常简单,是的,我的意思是实现Serializable。但我也意味着对象是非常简单的对象。如果每个对象都是某种图形或树形,那么序列化会产生更多问题。

答案 1 :(得分:2)

如果您需要人类可读性和机器可读性,如果您的地图可以使用它进行序列化,请考虑使用JSON。有几个库可以执行此操作,包括Google GSON,用于允许自定义序列化到/来自JSON。

答案 2 :(得分:1)

或使用其加载/保存方法将其作为属性发送。

答案 3 :(得分:1)

由于Properties是可序列化的,因此使用ObjectOutputStream是最简洁,最简单的解决方案。 (也可以使用所有基本的Map实现,但如果你碰巧有一个不可序列化的地图,你总是可以创建一个具有相同内容的HashMap并将其序列化。)