由于C语言更适于操作硬件,且在一些处理文件的操作上效率比较高,所以在类似操作一般使用JNI调用C代码进行操作: 比如音频,视频以及图像的处理:
具体如音频格式的转码器,类似于photo关于图片效果的渲染等应用中,需要大量应用JNI.
在此回顾下C语言操作文件的内容:
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(banary):二进制文件
C语言之文件的写入:
//java File file = new File(); ->c打开一个文件
// fos = FileOutPutstrem(file) ->c得到文件的输出流 int len = fos.write() //写了多长的数据
// fos.write(); -c写文件. fos.flush();
#include<stdio.h>
main(){
//FILE * fopen(char * filename, char * type);
//SharedPreference WORLD_READABLE WORLD_WRITEABLE APPEND PRIVATE
FILE* fp = fopen("1.txt","wt");
//int fwrite(void* ptr, int size, int nitems, FILE *stream);
//返回值 int 代表的是成功的写了多少次的数据.
// void* ptr 要写到文件的数据 可以char* int*
// size 一次写的数据的长度.
// nitems 代表的是写多少次
// stream 写到那一个文件里面.
char* str="hello";
int result = fwrite(str,sizeof(char),5,fp);
printf("写了%d次\n",result);
//一定要调用.如果不调用 就会导致这个文件被占用.
fclose(fp);
system("pause");
}
C语言之读取文件:
#include<stdio.h>
main(){
//FILE * fopen(char * filename, char * type);
//SharedPreference WORLD_READABLE WORLD_WRITEABLE APPEND PRIVATE
FILE* fp = fopen("1.txt","rt");
// int fread(void *ptr, int size, int nitems, FILE *stream);
//返回值 int 代表真的读取了多少次 size的长度
//*ptr 数据读到哪个内存空间里面
// size 一次读取的数据的长度是多个字节
// nitmes读取多少次数据
// stream 从哪个文件里面读
char* str =(char*) malloc(sizeof(char)*10); //分配内存
int read = fread(str, sizeof(char),5,fp);
printf("读了%d次\n",read);
printf("str=%s\n",str);
free(str); //手动释放分配的内存
fclose(fp);//关闭流
system("pause");
}
#include <stdlib.h>
#include <stdio.h>
C语言中的随机数函数:使用rand()函数需要导入stdlib.h,stdio.h两个头文件
#include <stdlib.h>
#include <stdio.h>
int getPressure(){
//底层c的实现代码,内部工作的原理可能非常复杂,我们不关心他.
//关心 方法的方法名 参数 还有返回值
return rand()%300; //0~300
}
分享到:
相关推荐
Android JNI Android JNI 用C函数写本地库读写文件,底层调用小例子用C函数写本地库读写文件,底层调用小例子
android jni 实现 RSA 3DES AES MD5 BASE64 加密,基于openssl
android jni使用curl进行http请求和文件下载,具体说明参考博客 http://blog.csdn.net/csdn49532/article/details/50680716
Android调用Jni返回自定义对象 博客:http://blog.csdn.net/lowprofile_coding/article/details/39367323
android JNI C 调用Java
Android JNI 部分学习文档 http://blog.csdn.net/liuhaomatou/article/details/8659088
Android jni文件读写 NDK文件读取 读写 操作 NDK数据加密DEMO 源码直接上传,运行在android6.0系统测试通过
在jni中获取android 设备的mac地址
通过JNI接口静态注册的native方法去创建线程,同时提供native回调Java的方法。通过这个框架可以去实现线程监听某一个状态,然后回调Java的方法(如发消息去通知顶层,实现显示)
Android 串口读写程序 JNI代码程序
Android 通过JNI调用C语言完整示例程序。Android Studio项目工程。
Android的JNI基础,主要描述了JNI语言的基础用法和数据类型。
这是一个简单的JNI开发中C层调用Java层函数的事例工程,对应的博客地址是:http://blog.csdn.net/hty1053240123/article/details/52126386
JAVA使用JNI读写INI文件的实例。 JAVA本身并没有读写INI文件的现成方法,有些人自己编写方法来读写INI文件,但是这样的方法或多或少的存在着一些问题。此示例旨在利用本地的WIN32API函数来读写INI文件,这样可以保证...
Android中实现JNI的AES加解密源代码,绝对可以运行!
Android通过NDK调用JNI来调用本地C语言实现的加密算法
例子通过jni调用libzip库读取压缩文件,和通过ndk自带api接口读取assets资源文件,附测试工程。
Android JNI 断点调试C++,一个简单测试,方便初学者入门NDK环境搭建和java调用c++并调试
android jni 屏幕截图
android JNI运行NDK编译成的可执行文件。 具体信息参考博客http://blog.csdn.net/csdn49532/article/details/50698666