我想用C本地库读写sdcard下的aa.txt,已经建好了,可是用C编写的代码读写的时候总是不成功,代码如下(本地库的)Java_oo_oo_kkk_stringFromJNI( JNIEnv* env,
jobject thiz )
{
LOGI("MyJNI is called!");
int fd,size;
char s[]="11111",buffer[50];
fd=open(path,O_RDWR|O_CREAT);
LOGI("输出到了这个点B");
if(fd==NULL)
{
return (*env)->NewStringUTF(env, "文件打开失败");
}
write(fd,s,sizeof(s));
close(fd);
fd=open(path,O_RDONLY);
if(fd==NULL)
{
return (*env)->NewStringUTF(env, "文件读出失败");
}
size=read(fd,buffer,sizeof(buffer));
close(fd);
LOGI(buffer);
LOGI("输出到了这个点C");
return (*env)->NewStringUTF(env,buffer);
}
请教做过的,有过经历的同学帮帮忙。QQ1053155108,晨听雨
jobject thiz )
{
LOGI("MyJNI is called!");
int fd,size;
char s[]="11111",buffer[50];
fd=open(path,O_RDWR|O_CREAT);
LOGI("输出到了这个点B");
if(fd==NULL)
{
return (*env)->NewStringUTF(env, "文件打开失败");
}
write(fd,s,sizeof(s));
close(fd);
fd=open(path,O_RDONLY);
if(fd==NULL)
{
return (*env)->NewStringUTF(env, "文件读出失败");
}
size=read(fd,buffer,sizeof(buffer));
close(fd);
LOGI(buffer);
LOGI("输出到了这个点C");
return (*env)->NewStringUTF(env,buffer);
}
请教做过的,有过经历的同学帮帮忙。QQ1053155108,晨听雨
解决方案 »
- android系统中*.bin文件读取时乱码问题
- android PopupWindow小问题
- ubuntu升级之后,Android开发环境不能使用了
- 学习Android要哪些基本知识!
- 我写的手势识别怎么只响应down,onshowpress,onLongpress啊?
- 如何让Android Service不被清除或者常驻内存
- 在线求,当点击了某个按钮时,旁边的文本输入框才允许输入文字
- statelistdrawable 图片不显示
- build.gradle 从哪开始执行?
- Viewpager按钮点击切换图片
- 有关于Android USB HOST模式的疑问,希望高手释疑
- 如何设置MediaPlayer视频的控制次数循环播放
我用的是fd=fopen(path,"rw");读写权限,成功读出sdcard/aa.txt里的内容,现在遇到一个困难,就是如何将java中的string参数传到C中变成char数组,就是string->jstring->char[],求一个代码例子,至于我这个例子,现将成功调试过得代码奉上
const char *path = "/sdcard/ee.txt";
jstring
Java_com_test_JNITest_stringFromJNI( JNIEnv* env,
jobject thiz )
{
LOGI("MyJNI is called!");
int size;
FILE *fd;
char a='b';
char s[]="111111111",buffer[16];
memset(buffer,0,16);
fd=fopen(path,"rw");
if(fd<0)
{
return (*env)->NewStringUTF(env, "444444444");
}
size=fread(buffer,sizeof(char),15,fd);
fclose(fd);
LOGI("0000000000000000000");
LOGI(buffer);
return (*env)->NewStringUTF(env, buffer);
}
jstring和char*的转换,自己看看吧。