突然想起了这个基础性的问题,自己一直对它的区别不是很清楚,于是今天上午研究下了,分享下自己的理解。(对它很清楚的同学们可以略过此篇文章)

大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。

简单来说,
文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。
二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码)。
从上面可以看出文本文件基本上是定长编码的,基于字符嘛,每个字符在具体编码中是固定的,ASCII码是8个比特的编码,UNICODE一般占16个比特。
而二进制文件可看成是变长编码的,因为是值编码嘛,多少个比特代表一个值,完全由你决定。

C的文本读写和二进制读写
    应该说C的文本读写与二进制的读写是一个编程层次上的问题,与具体的操作系统有关,所以"用文本方式读写的文件一定是文本文件,用二进制读写的文件一定是二进制文件"这类观点是错误的.下面的讲述非明确指出操作系统类型,都暗指windows.
    C的文本方读写与二进制读写的差别仅仅体现在回车换行符的处理上.
文本方式写时,每遇到一个''\n''(0AH换行符),它将其换成''\r \n''(0D0AH,回车换行),然后再写入文件;当文本读取时,它每遇到一个''\r\n''将其反变化为''\n'',然后送到读缓冲区.
二进制读写时,其不存在任何转换,直接将写缓冲区中数据写入文件.

对于内容为 “Ab123\r\n" (41 62 31 32 33 0D 0A)的文件,
pf1 = fopen("f:\\1.txt","r");或者pf1 = fopen("f:\\1.txt","rb");
for(int i=0;i <6;i++){
   fread(&a[i],1,1,pf1);
   printf("%0X ",a[i]);
}
fclose(pf1);//关闭文件

的结果分别为:
41 62 31 32 33 0A          和     41 62 31 32 33 0D

文本文件与二进制的区别相关推荐

  1. 计算机中,文本文件和二进制文件的区别

    文本文件和二进制文件都是存储的二进制0和1,区别在于: 文本文件:二进制是以字符编码方式存储的,如utf-8, gbk,规则简单 二进制文件:二进制没有以字符编码的方式存储,规则复杂,只有计算机能够理 ...

  2. 文本文件和二进制文件的区别

    广义的二进制文件即指文件,由文件在外部设备的存放形式为二进制而得名.狭义的二进制文件即除文本文件以外的文件.文本文件是一种由很多行字符构成的计算机文件.文本文件存在于计算机系统中,通常在文本文件最后一 ...

  3. 文本文件和二进制文件的区别和联系

    目录 文件类型 ASCII码 文本文件和二进制文件 程序       最近使用MATLAB将文本文件转换为二进制文件时遇到了一些麻烦,回头补了补当年学的文件存储,对计算机中文件存储理解更深刻了,在这里 ...

  4. python文本文件和二进制文件的区别_以文本格式和二进制格式打开文件,到底有什么区别?...

    以文本格式和二进制格式打开文件,到底有什么区别? 我们知道,open() 函数第二个参数是一个字符串,用于指定文件的打开方式,如果该字符串中出现 b,则表示以二进制格式打开文件:反之,则以普通的文本格 ...

  5. 二进制文件文本文件和二进制数据

    我们知道计算机是用二进制来做运算处理的,所以所有存储在计算机里面的东西都是二进制的. 我也知道这句话,但为什么总是听到别人说"二进制"文件和"文本"文件呢? 按 ...

  6. 【文本文件与二进制文件的区别;文件打开与关闭的方法、不同读写方式】(学习笔记19--文件上)

    目录 文件的打开与关闭 文件的打开 文件的关闭 标准文件流 文件流的重定向 文件的读写 以字符的方式读写文件 以行的方式读写文件 以格式化的方式读写文件 以块的方式读写文件 文件的打开与关闭 文件的实 ...

  7. 文本文件与二进制文件的区别

    以下内容源于网络资源的学习与整理,如有侵权请告知删除. 一.文本文件与二进制文件的定义 计算机以二进制数字0和1存储数据,因此在物理层面上,文本文件和二进制文件没有本质差异,都是由数字0和1构成的集合 ...

  8. python中文本文件和二进制文件的区别_文本文件和二进制文件的区别

    定义 广义的二进制文件即指文件,由文件在外部设备的存放形式为二进制而得名.狭义的二进制文件即除文本文件以外的文件.文本文件是一种由很多行字符构成的计算机文件.文本文件存在于计算机系统中,通常在文本文件 ...

  9. python087(文件—文件概念以及文本文件和二进制文件的区别)

    文件的概念和作用 计算机的文件,就是存储某种长期储存设备上的一段数据 长期存储设备包括:硬盘.U盘.移动硬盘.光盘... 文件的作用 将数据长期保存下来,在需要的时候使用 CPU在使用数据时,要先将硬 ...

  10. 117. 请简述文本文件和二进制文件的区别

    链接:https://www.nowcoder.com/questionTerminal/6e2a7411830d44b19b3dd1de7e7302db?toCommentId=1137079 来源 ...

最新文章

  1. MySQL5.7 解决 字符编码问题 与 安装完 MySQL 无 my.ini
  2. linux 6中启动模式,linux6.x启动流程
  3. ASP.NET Core 中做集成测试的三种方案
  4. hadoop tyarn冲突_Hadoop之Yarn
  5. 想写高质量代码,减少代码负债性?底层和源码这类还是得多用用心
  6. Codeforces-710E Generate a String
  7. matlab 输出一行字,MATLAB输出结果的格式设置
  8. AD16原理图库加封装报Footprint not found
  9. FAT学习笔记(四)——Dir Entry
  10. 罗振宇跨年演讲4小时讲了啥?记住这4733字
  11. 【良心推荐两款软件】eDiary记笔记软件+截图识别文字软件
  12. 三种方法查看电脑IP地址是否被占用
  13. Java中打印程序执行的开始时间和结束时间
  14. Hangfire项目
  15. matlab模拟双星问题,物理定律、数学模型告诉你,天下有情人终将分手!
  16. Neo4j入门之中国电影票房排行浅析
  17. Text to image论文精读PDF-GAN:文本生成图像新度量指标SSD Semantic Similarity Distance
  18. Java中带参方法的定义与调用
  19. 【Spring boot】IDEA + Maven + Spring Boot + Mybatis + Druid + PageHelper
  20. 关于一个web站点的欢迎界面

热门文章

  1. Red5java.util.concurrent.RejectedExecutionExceptio
  2. jquery 插件解决IE6 PNG不透明
  3. [备忘]Vim的一个插件扩展版本——exVim
  4. [Music]Candle in the Wind 1997《风中之烛》缅怀戴安娜
  5. IE DOM中Frame的使用
  6. 用qt调用第三方库resolve
  7. 容器和泛型 容器重点掌握
  8. 输出毫秒_毫秒级网络监控(网络示波器)
  9. zsh重启后环境变量失效
  10. python包管理工具pip_pip_python包管理工具(pip)下载 v9.0.1官方版 - 121下载站