Android NDK JNI C++ <8> 讀寫文件


本來想直接看看Thread的,結果差一個小插曲:Android 的Bionic C語言庫的使用.

我們在前面<7>博客的文章中的plus.cpp和plus.h中直接添加讀寫操作文件:增加filemanager(char* infor)的函數

#include<stdio.h>
#ifndef PLUS_HEADER_H__
#define PLUS_HEADER_H__

class cale{

public:
    cale(){};
    virtual ~cale(){};

    virtual int addplus(int a,int b);
    virtual char* showmsg();
    virtual char* filemanager(char* infor);

};

#endif


plus.cpp如下:

#include "plus.h"

char* cale::showmsg() {
    return "cpp program !";
}
;

int cale::addplus(int a, int b) {
    return a + b;
}
;

char* cale::filemanager(char* infor) {

    char* str = "Native Code!";


    FILE* file = fopen("sdcard/hello.txt", "w+");
    if (file == NULL) {
        file = fopen("mnt/sdcard/hello.txt", "w+");
        if (file == NULL) {
            file = fopen("storage/sdcard/hello.txt", "w+");
        }
    }

    if (file == NULL) {
        str = "Native Code! fopen() did not work!";
    } else {
        str = "Native Code! fopen() worked!";
        fputs("HELLO WORLD!\n", file);
        fflush(file);
        fclose(file);
    }

    return str;

}

讓后重新swig轉換就可以了.

調用,在APP中需要添加讀寫sdcard權限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 


然后使用adb查詢結果:

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM