Чистый способ отремонтировать карту - PullRequest
2 голосов
/ 14 января 2011

Предположим, у меня есть карта свойств, и мне нужно представление String. toString покупает это в форме {ключ = значение, ...}. Мне нужно отправить эти данные по проводам и перепаковать их в карту на другом конце. Каков наилучший способ сделать это, учитывая, что в данных может быть запятая?

Кроме того, есть ли какая-то другая техника, которую я полностью пропускаю? Если бы я мог отправить объект через сам провод, это было бы замечательно. Я бы хотел избежать RMI.

Ответы [ 4 ]

4 голосов
/ 14 января 2011

Рассматривали ли вы просто использование сериализации Java?

Если ключи и значения в вашей карте довольно просты, вы должны быть золотыми.ObjectOutputStream и ObjectInputStream помогут вам.

Это не невероятно эффективно для размера и скорости, но невероятно быстро для реализации.

РЕДАКТИРОВАТЬ: Под довольно простым, да, я имею в виду реализацию Serializable.Но я также имею в виду, что объекты являются довольно простыми объектами.Если каждый объект представляет собой своего рода граф или дерево, то сериализация может стать более проблематичной.

2 голосов
/ 14 января 2011

Если вам нужна читаемость человеком, а также машиночитаемость, рассмотрите возможность использования JSON , если ваша карта может быть сериализована с ним.Есть несколько библиотек, которые делают это, в том числе Google GSON для разрешения настраиваемой сериализации в / из JSON.

1 голос
/ 14 января 2011

Поскольку свойства сериализуемы, использование ObjectOutputStream является самым чистым и простым решением. (Работает также со всеми базовыми реализациями Map, но если у вас есть несериализуемая карта, вы всегда можете создать HashMap с тем же содержимым и сериализовать его вместо этого.)

1 голос
/ 14 января 2011

Или отправьте его как Свойства, используя методы загрузки / сохранения.

...