二进制文件和文本文件都是0,1组成,但文件系统对他们的解释不一样,一般系统调用(或WIN32API)都会分为字符式和二进制式(或流式).文本或字符文件代表慢速设备,而二进制文件代表可以大块数据操作的快速外设,二进制文件内容基本无意义,系统对它不加解释地传给调用者,解释由调用者负责.而对字符文件,系统把他理解为单字节的ASCII或多字节的UNICODE字符串,并且对其中的特殊字符(如回车等)加以特殊处理.所以同一个文件,可以使用不同类型的系统调用.
==================================================
二进制文件是直接把你指定在内存中的内容写入到文件中,
而文本文件一般是把先内存中的内容转换为ASCII码,然后再写入到文件中.
而文本文件又因为不同的字符编码分不同文件类型:
ASCII编码文件,UTF-8编码文件,unicode编码文件等等……
===============================================
二进制数据: 二进制数据就是完全数字型
二进制文件:"二进制文件"本来就是一种似是而非的叫法。我们知道,存在有种类繁多的不同类型(格式)的文件,如文本文件,视频文件,图像文件,数据库文件...., 文件格式的具体定义取决于应用。不同的文件格式的主要差别之一就是信息的编码不同,而编码总归都是"二进制"的,从这个方面看,所有的都是"二进制文件 "。而我们常讲的"二进制文件"并不是这个意思,它是想对于"文本文件"而言的,也就是说,所有非文本文件(即非ASCII编码)都被称为"二进制文件 ".在这里很容易提出疑问,文本文件只是文件格式的一种,所有格式的文件应该都是平等的,为什么在这里把它单独提出来作为一种特殊的参照呢?原因很简单, 那就是无论从应用时间的久远程度还是应用的普遍性上,ASCII编码的文件都是其他格式的文件所不能比拟的。
可以简单理解成:
只由ASCII字符构成的文件称为[b]文本文件[/b](text files),所有其他的文件则称为[b]二进制文件[/b]。
所谓的ASII字符构成的文件,就是用一个唯一的字节大小的整数值来表示每个字符,比如字符"i"的ASCII值为105,"c"为99,“\n”为10 等等。更通俗的讲,在文本文件中,你看到的是一个个的字符“a”,“b”,“c”,他们都由一个唯一的整数值表示,表现在内存上,就是整数值97,98, 99。而二进制文件没有字符概念,它是一个个的值,当然,你认为这个值代表什么,它就可以代表什么。
二进制对象:计算机中,一个大型二进制对象通常是一个大型的文件,例如一个图片或声音文件。而这些文件不得不以一种特殊的方式存放在数据库中。按照Eric Raymond的解释,大型二进制对象的意义在于,当文件的处理者(例如数据库管理工具)无法识别文件的格式以致无法处理该文件时,就把它作为大型二进制对象来处理。也有人说大型二进制对象实际上指代的是大型数据对象。一个需要处理大型二进制对象的应用程序是存储了大型多媒体对象(例如电影和电视节目)的数据存储器。