Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用java读取mongodb中保存的erlang元组_Java_Mongodb_Erlang - Fatal编程技术网

如何用java读取mongodb中保存的erlang元组

如何用java读取mongodb中保存的erlang元组,java,mongodb,erlang,Java,Mongodb,Erlang,结果是 我需要用java阅读它 A= term_to_binary({100,200,123,45}) , io:format("~p~n",[A]), mongo:save(?IP_ADDRESS, {'_id', 1, ip,A}). 结果是 {100,63,123,45} 错误通过将术语_指定为二进制,您正在尝试将erlang术语转换为二进制。应使用二进制_-to-u项将其转换,以返回结果。将事物信息存储在mong

结果是

我需要用java阅读它

            A= term_to_binary({100,200,123,45}) ,
            io:format("~p~n",[A]),
            mongo:save(?IP_ADDRESS, {'_id', 1, ip,A}).
结果是 {100,63,123,45}
错误

通过将术语_指定为二进制,您正在尝试将erlang术语转换为二进制。应使用二进制_-to-u项将其转换,以返回结果。将事物信息存储在mongodb中,您将尝试在这里进行不同的转换

因此你的结果是错误的

    t[0]=(byte)131;
    try
    {
        OtpInputStream ois = null;
        ois = new OtpInputStream(t);
        OtpErlangTuple IP = (OtpErlangTuple)OtpErlangObject.decode(ois);
        System.out.println(IP);}
简而言之,java中的“{a,b,c,d}”与erlang中的术语_to_二进制({a,b,c,d})不同


这里将二进制erlang术语转换为字符串。如果要保存,必须先保存到字符串,然后保存到二进制,然后再检索它。

当您
toString()
对象或
getBytes()
数据时,这可能是一个编码问题。退房
    t[0]=(byte)131;
    try
    {
        OtpInputStream ois = null;
        ois = new OtpInputStream(t);
        OtpErlangTuple IP = (OtpErlangTuple)OtpErlangObject.decode(ois);
        System.out.println(IP);}
1> A= term_to_binary({100,200,123,45}).
<<131,104,4,97,100,97,200,97,123,97,45>>
2> binary_to_term(A).
{100,200,123,45}
String u = a.get("ip").toString();