android JNI之C 语言回顾:文件的读写和随机数函数

长平狐 发布于 2012/09/03 12:30
阅读 2K+
收藏 0

由于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

}



原文链接:http://blog.csdn.net/t12x3456/article/details/7706277
加载中
返回顶部
顶部