gpt4 book ai didi

java - 如何使用 jni 将数据从 java InputStream 移动到 C++ 中的 char *?

转载 作者:行者123 更新时间:2023-11-28 08:19:36 26 4
gpt4 key购买 nike

如何使用 JNI 将存储在 java InputStream 中的数据移动到 C++ 中的 char *?

谢谢,卡洛斯。

最佳答案

这是java代码

InputStream is = new FileInputStream("filename");

int numBytesToRead = 1024;
byte[] inBuffer = new byte[numBytesToRead];
int bytesRead = is.read(inBuffer, 0, numBytesToRead);

decodeAacBytes(inBuffer, bytesRead);

jni代码是

jint Java_com_example_test_MainActivity_decodeAacBytes(JNIEnv * env, jobject this, jbyteArray input, jint numBytes)
{
//copy bytes from java
jbyte* bufferPtr = (*env)->GetByteArrayElements(env, input, NULL);
char *inputBytes = malloc(numBytes * sizeof(char));
memcpy(inputBytes, bufferPtr, numBytes);
(*env)->ReleaseByteArrayElements(env, input, bufferPtr, 0);

return 0;
}

这些值现在将在 inputBytes 数组中

关于java - 如何使用 jni 将数据从 java InputStream 移动到 C++ 中的 char *?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6369402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com