通过jni在本地创建文件
1.在android studio创建基本的jni工程,并且在APP界面成功显示"Hello from C++"
不会的可以看android studio使用jni
2.在native-lib.cpp文件中创建文件
为了方便,我们直接在stringFromJNI函数中创建文件
#include <jni.h>
#include <string>
#include <stdio.h>
#include <android/log.h>
//方便用日志查看
#define LOG_D(...) __android_log_print(ANDROID_LOG_DEBUG, "jni", __VA_ARGS__)
//使用宏来调用日志库
extern "C" JNIEXPORT jstring JNICALL
Java_com_example_clientfile_MainActivity_stringFromJNI(
JNIEnv *env,
jobject /* this */) {
std::string hello = "Hello from C++";
FILE* file = NULL;
file = fopen("/data/data/com.example.clientfile/hello.txt","a"); //创建文件
if(file == NULL){ //容错
LOG_D("文件创建失败%s","222");
}
fwrite("1111",3,1,file); //往文件中写文件
fclose(file); //关闭文件
return env->NewStringUTF(hello.c_str());
}
其中非常需要注意的一点是创建文件的位置,必须是"/data/data/[project name]/test.txt",否则无法创建。
3.查看是否生成了该文件
点击View->Tool->Windows->Device File Explorer
在弹出的对话框中选择data->data->[你的项目名称]
没有我们想要创建的hello.txt文件
我们在我们的项目明上右击,选择Synchronize
出现了hello.txt
同时我们来看一下该文件的路径
在文件名上右击,选择Copy Path,然后随便找一个地方粘贴
结果是 /data/data/com.example.clientfile/hello.txt
所以,我们在该APP内创建的文件只能在这个目录先,当然我们也可以在项目名下先创建目录,在新建的目录下创建文件也可以。
最后打开hello.txt文件,看内容是否生成,右击选择open
显示111
至此,在android内使用jni创建本地文件已成功。