前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NDK启航篇——C语言终章(文件IO操作)

NDK启航篇——C语言终章(文件IO操作)

作者头像
longzeqiu
发布2020-04-09 11:44:54
8610
发布2020-04-09 11:44:54
举报
文章被收录于专栏:Android小知识Android小知识

今天写最后的部分文件IO操作

什么是文件IO

  • 就是对存储在计算机物理上的二进制文件进行读写操作
    • 文件逻辑上分为文本文件二进制之分
    • C读写文本文件二进制文件的差别仅仅体现在回车换行符
    • 写文本时,每遇到一个\n,会将其转换成\r\n(回车换行)
    • 读文本时,每遇到一个\r\n,会将其转换成\n

读写文本文件

  • 关键函数
    • fopen(文件路径,"r") r代表读取
    • fget(缓冲区,每次读取多少,文件地址)
    • fputs(写入的字符,文件地址)
    • fclose(文件地址)
代码语言:javascript
复制
//读取文本文件
void main(){
  char path[] = "C:\\picture\\water\\text.txt";
  //打开
  FILE *fp = fopen(path,"r");
  if(fp == NULL){
    printf("文件打开失败");
    return;
}
  //读取
  char buff[50];//缓冲
  while(fget(buff,50,fp)){
    printf("%s",buff);
}
  //关闭
  fclose(fp);
  
  getchar();
}

}
  • 写入文本文件
代码语言:javascript
复制
//写入文本文件
void main(){
  char path[] = "C:\\picture\\water\\text.txt";
  //打开
  FILE *fp = fopen(path,"r");
  char * text = "jdkfsd\njfdsk";
  fputs(text,fp);

  //关闭
  fclose(fp);
  
  getchar();

}

读写二进制文件

  • 文件复制
    • fopen(文件的地址 ,"rb");b字符表示操作二进制文件binary
    • fread(缓冲区,sizeof(缓冲区类型),每次读取多少,文件地址))
    • fwrite(缓冲区,sizeof(缓冲区类型),每次读取多少,文件地址)
代码语言:javascript
复制
void main(){
  char *read_path = "C:\\picture\\water\\text.exe";
  char *write_path = "C:\\picture\\water\\text2.exe";
  //读文件 b字符表示操作二进制文件binary
  FILE *read_fp = fopen(read_path ,"rb");
//写的文件
    FILE *write_fp = fopen(write_path,"wb");
  //复制缓冲区域
  int buff[50];
  //每次读到的数据长度
  int len = 0;
  while((len = fread(buff,sizeof(int),50,read_fp)) ! = 0){
    //将读到的内容写到新的文件
    fwrite(buff,sizeof(int),len,write_fp);
}
  //关闭流
  fclose(read_fp);
  fclose(write_fp);
  
  getchar();

}
  • 获取文件的大小
    • fseek(文件地址,偏移量,SEEK_END);//SEEK_END定位到文件末尾,0代表没有偏移量
    • ftell(文件地址);
代码语言:javascript
复制
void main(){
 char *read_path = "C:\\picture\\water\\text.exe";
 FILE *read_fp = fopen(read_path ,"rb");
//重新定位文件指针
//SEEK_END定位到文件末尾,0代表没有偏移量
 fseek(read_fp,0,SEEK_END);
  //返回当前的文件指针,相对于文件开头的位移量
 long filesize = ftell(read_fp); 
 printf("%d\n",filesize);
 getchar();
}

文件IO的作用

  • 进行文件的加解密
  • 进行文件的分割等等

好啦,C语言的基础知识我们已经搞定了,在看C的代码应该大部分都可以看懂,后续会写一些C++ 的知识点,NDK的大船已经扬起了帆,让我们开启这神秘的旅程吧!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 今天写最后的部分文件IO操作
    • 什么是文件IO
      • 读写文本文件
        • 读写二进制文件
          • 文件IO的作用
          • 好啦,C语言的基础知识我们已经搞定了,在看C的代码应该大部分都可以看懂,后续会写一些C++ 的知识点,NDK的大船已经扬起了帆,让我们开启这神秘的旅程吧!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档