快好知 kuaihz

程序员别唬我系列之:二进制文件

二进制文件和文本文件有什么区别?

程序员经常说:“哥,你也别用明文写文件啊,至少也要写成二进制文件啊”。

程序员经常说:“哥,这篇文章数字居多,不要写成文本文件哦,好占空间啊”。

程序员经常说:“哥,你是不明白文本文件二进制文件的区别吧 :—)”。

带着这些常见的问题,果果带你走进科学,看看文本文件二进制文件的本质区别以及使用场景。

计算机中的文本文件就指的是你常见到的txt,记事本文件这种,在windows中打开,你是直接可阅读,并可解释其含义的。

二进制文件通常你用文本打开工具是不能打开的,我们用记事本强行打开,也是一团乱码,下图应该是你常见的,不信你用NotePad等工具打开一张图片看看。

其实,从广义的存储的角度看,计算机中本没有什么文本文件二进制文件的区别,在计算机的硬盘上存储的文件都是以二进制存储的,也就是01的串。

那为什么程序员口中又要分这两种类型呢?区别何在呢?

其实是从狭义的角度划分,我们还是举栗子进行说明:

圆周率π=3.1415926 ,如果按照文本文件存储(在桌面上新建一个txt,然后输入3.1415926,然后保存),这个文件就被存储为一个文本文件,其中一共9个字符,分别是3、.、1、4、1、5、9、2、6,这几个数字分别按照其对应的ASCII码为十进制的63,56,61,64,61,65,71,62,66,每个字符占用一个字节,所以一共占用了9个字节的空间。

如果按照二进制文件存储,那3.1415926是一个浮点数,那最终占用4个字节存储。

可以明显的推导出一个结论:二进制文件在数字上存储要比文本文件省空间,也就是文本文件是按照字符存储,二进制文件按照数据类型存储。

文本文件最终存储的也是二进制文件,只不过每一个字节都是可以转换为相应的字符的,因为要保障其可以还原,而二进制文件根本不关心存储的是什么,就像吃火锅往火锅里面下菜的时候,文本文件像个大家闺秀一样,还要区分蔬菜放在不辣的里面,肉放在辣锅里面一样,效率当然低,而二进制文件不管三七二十一,不按任何规则,只要保证菜品入锅就好了。

就像程序员说的,文本文件打开就是明文,而二进制文件是不定长的,而且存储的是时候,你不知道写入的程序员是按照什么规则写入的,所以会增加一点破解难度。

总结起来,二进制文件更省空间,写入速度更快,因为可读性很差,所以还有一定的加密保护作用。

因为从存储的角度,本来一切公平,大家都是二进制存储的。但是因为人要读文件,所以文本文件委屈求全,作为二进制文件的子集,文本文件开辟了一个新的文件品类,这种品类下,文件的每个字符都是经过了特殊处理(比如转成ASCII码)然后再存储为二进制,这样的二进制因为可以直接对应为ASCII码,所以可供人们阅读。

在程序设计中,经常利用文件流进行二进制文件的读写,程序员会经常跟二进制文件打交道,而且二进制文件的格式经常是程序员自定义的,希望后面你听到这个词的时候,不要太陌生,只把它当作一个普通文件即可。

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:二进制  二进制词条  程序员  程序员词条  文件  文件词条  系列  系列词条  
产品

 数据结构设计浅谈

相信无论是产品经理还是项目经理,都遇到过项目数据结构的设计相关的事情,说说个人对于数据结构设计的理解。工欲善其事必先其器,先给大家介绍几个我比较熟悉数据结构设计...(展开)

产品

 产品经理的说话指南,请查收

听说产品经理每天工作时间70%都是花在沟通上,沟通能力是产品经理最核心的价值。很多人都说,产品经理就是要会说、会侃。而侃的目的当然不是为了一时爽,而是有目的性的...(展开)