jstring 和 char* 互转
来源:互联网 发布:淘宝优惠券怎么赠送 编辑:程序博客网 时间:2024/06/05 10:38
//char to jstringjstring charToJstring(JNIEnv* env,const char* pat) { //定义java String类 strClass jclass strClass = (env)->FindClass("Ljava/lang/String;"); //获取String(byte[],String)的构造器,用于将本地byte[]数组转换为一个新String jmethodID ctorID = (env)->GetMethodID(strClass, "<init>", "([BLjava/lang/String;)V"); //建立byte数组 jbyteArray bytes = (env)->NewByteArray(strlen(pat)); //将char* 转换为byte数组 (env)->SetByteArrayRegion(bytes, 0, strlen(pat), (jbyte*)pat); // 设置String, 保存语言类型,用于byte数组转换至String时的参数 jstring encoding = (env)->NewStringUTF("GB2312"); //将byte数组转换为java String,并输出 return (jstring)(env)->NewObject(strClass, ctorID, bytes, encoding); }
//jstring to char*char* jstringTostring(JNIEnv* env, jstring jstr){ char* rtn = NULL; jclass clsstring = env->FindClass("java/lang/String"); jstring strencode = env->NewStringUTF("utf-8"); jmethodID mid = env->GetMethodID(clsstring, "getBytes", "(Ljava/lang/String;)[B"); jbyteArray barr= (jbyteArray)env->CallObjectMethod(jstr, mid, strencode); jsize alen = env->GetArrayLength(barr); jbyte* ba = env->GetByteArrayElements(barr, JNI_FALSE); if (alen > 0) { rtn = (char*)malloc(alen + 1); 软件开发网 www.mscto.com memcpy(rtn, ba, alen); rtn[alen] = 0; } env->ReleaseByteArrayElements(barr, ba, 0); return rtn;}
C文件的操作模式:
“rt” 只读打开一个文本文件,只允许读数据
“wt” 只写打开或建立一个文本文件,只允许写数据
“at” 追加打开一个文本文件,并在文件末尾写数据
“rb” 只读打开一个二进制文件,只允许读数据
“wb” 只写打开或建立一个二进制文件,只允许写数据
“ab” 追加打开一个二进制文件,并在文件末尾写数据
“rt+” 读写打开一个文本文件,允许读和写
“wt+” 读写打开或建立一个文本文件,允许读写
“at+” 读写打开一个文本文件,允许读,或在文件末追加数据
“rb+” 读写打开一个二进制文件,允许读和写
“wb+” 读写打开或建立一个二进制文件,允许读和写
“ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据
对于文件使用方式有以下几点说明:
文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:
r(read): 读
w(write): 写
a(append): 追加
t(text): 文本文件,可省略不写
b(binary): 二进制文件
- jstring 和 char* 互转
- jni中jString和char*互转
- jstring 和 char* 转换
- char* 和jstring转换
- jstring 和char* 之间的转换方法
- jstring 和char* 之间的转换方法
- jstring 和char* 之间的转换方法
- JNI jstring 和char* 的相互转换
- jstring 和string char*之间的转换
- jstring 和char* 之间的转换方法
- jstring to char*
- jstring 转换为 char *
- jstring to char*
- JNI中jstring 和char* 之间的转换方法
- Android JNI char* 和jstring类型相互转换函数。
- JNI中string 、 char* 和 jstring 两种转换
- jstring转char*、指针p+i和&p[i]一样
- JNI中jstring 和char* 之间的转换方法
- 今晚吃啥!
- 程序员都应该挖一口属于自己的井
- 分治法-归并排序
- 图片圆角处理
- android string.xml 尾部显示空格问题
- jstring 和 char* 互转
- 搭建ORACLE 10G DATAGUARD示例
- RM删除指定文件其他文件
- wince下time_t tm systemtime 互相转换
- Documentation\filesystems\bfs
- 轩辕Linux开放实验室
- SetImageROI函数设置ROI区域的作用及用法
- javabean总结
- memcache分析