android通过JNI用C/C++创建本地文件

通过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->[你的项目名称]

扫描二维码关注公众号,回复: 4519674 查看本文章

没有我们想要创建的hello.txt文件

我们在我们的项目明上右击,选择Synchronize

出现了hello.txt

同时我们来看一下该文件的路径

在文件名上右击,选择Copy Path,然后随便找一个地方粘贴

结果是 /data/data/com.example.clientfile/hello.txt

所以,我们在该APP内创建的文件只能在这个目录先,当然我们也可以在项目名下先创建目录,在新建的目录下创建文件也可以。

最后打开hello.txt文件,看内容是否生成,右击选择open

显示111

至此,在android内使用jni创建本地文件已成功。

猜你喜欢

转载自blog.csdn.net/qq_34759481/article/details/84548821
今日推荐