我想製作一個使用Jni包裝C++庫的包裝器。基本上,我有第三方庫,它可以讀取文件中的點(x,y,z)。所以,文件路徑必須是輸入參數。 我JNI是像
JNIEXPORT void JNICALL to_the_path_loadFile(JNIEnv *env, jobject obj,jstring filePath)
JNIEXPORT jdouble JNICALL to_the_path_getX(JNIEnv *env, jobject obj, jint index)
使用Jni包裝C++庫
第一種方法將加載文件,第二個將得到座標x。
由於該文件具有大量的點,我無法將它們全部加載到內存中。 我的想法是使用迭代器迭代每個點並將其包裝到Java對象。這意味着我必須多次致電getX()
。
我的問題是如何避免加載文件流很多次?我是新來的c + +,有沒有一種方法,我可以參考回C++對象,所以我能夠告訴我正在閱讀哪一點?