如何将c ++ stringstream二进制数据传输到java

时间:2017-01-31 04:39:30

标签: java c++ binary-data stringstream

我需要使用boost binary_oarchive来序列化我的数据然后转移到我的Android应用程序。

def soup(x):
    for i in range(x):
        if i>0 and i%2==0:
            print ('tomato',end='')
        else:
            print (i,end='')

我写了一个jni代码来将c ++字符串传输到java字符串。

string MyCppClass::GetSerializeData() {
  std::stringstream os;
  {
    ::boost::archive::binary_oarchive oa(os, boost::archive::no_header);
    oa << my_data;
  }
  return os.str();
}

但是这种方式不起作用,我试图将正常的字符串写入stringstream,如:

JNIEXPORT jstring JNICALL getCppData(JNIEnv *env, jobject instance) {
  std::string temp = MyCppClass.GetSerializeData();
  jstring orb_string = env->NewStringUTF(temp.c_str());
  return orb_string;
}

工作正常。所以我认为问题是我的c ++字符串是二进制格式。 我想问一下如何将c ++二进制字符串传递给java端?

0 个答案:

没有答案