A= term_to_binary({100,200,123,45}) ,
io:format("~p~n",[A]),
mongo:save(?IP_ADDRESS, {'_id', 1, ip,A}).
результат < < 131,104,4,97,100,97,200,97,123,97,45 >>Как читать Erlang кортежа, сохраненный в MongoDB с Явой
и мне нужно прочитать его в Java
DBObject a = IpTable.findOne(new BasicDBObject("_id",1));
byte[] t=null;
try
{
String u = a.get("ip").toString();
System.out.println(u);
t= u.getBytes("ISO8859-1");
}
catch(Exception ex)
{
}
for(int i=0;i<t.length;i++)
System.out.print(t[i]+",");
System.out.println();
результат
63,104,4,97,100,98,0,0,7,63,97,123,97,45,
, если я меняю первые байты в 131
t[0]=(byte)131;
try
{
OtpInputStream ois = null;
ois = new OtpInputStream(t);
OtpErlangTuple IP = (OtpErlangTuple)OtpErlangObject.decode(ois);
System.out.println(IP);}
результат {100,63,123,45} неправильно
его вероятно проблема с кодировкой, когда вы 'toString()' объект или 'getBytes()' данные. Ознакомьтесь с http://stackoverflow.com/questions/16909645/how-to-read-erlang-term-from-redis-by-using-java-client/19369461#19369461 – Daniel