当前位置:C++技术网 > 资讯 > 二进制文件和文本文件的区别图解分析

二进制文件和文本文件的区别图解分析

更新时间:2015-08-07 14:09:45浏览次数:1+次

    对于文本文件和二进制文件,很多人依然稀里糊涂,即使懂了些编程的东西。有些有有些开发经验的,也不一定能说的清楚。对于初学者来说,这个也是一个非常重要的知识点。这里用图解的方式,一目了然的解释了两者的区别。
二进制文件和文本文件的区别图解分析
    图中有两个文件,一个是1.txt,一个是1.bin。分别表示,文本文件和二进制文件。文件的后缀名(扩展名)其实对于文件格式来说,没有影响。你也可以把1.bin改成1.any的扩展名。对于扩展名和文件格式的理解,请参考《你必须知道的程序那些事:扩展名和格式的区别》。
    这两个文件的区别,就在于文件内部存储的内容以及解释的方式。我们这里演示的是,两个文件在计算机中内部存储一模一样的内容,最终的数据结果却不一样。
    我们在1.txt文件中存储一个A字母。而在1.bin存入二进制的1000001。那么我们看到的,1.txt文件中就是一个大写字母A,而在1.bin文件中,读取出来后,将二进制数字转换成十进制,就是65.显然,两文件的内容不一样。
    那么我们在看看两个文件内部存储的数据是哪样的。
    这个文本文件使用ASCII编码,也就是说,我写入一个A,那么,最终存储时,需要将字符A去找对应的ASCII编码表中的字符编码,经过查找,发现编码为65.那么此时,存入计算机的就是将编码65存入。计算机内存或者硬盘都是二进制的,所以,要将十进制的65转换成二进制,就是1000001,存储的结果就是图中底部的加粗的二进制。1.txt文件就占了这么点空间。
    我们再来看1.bin文件。因为我们存储为二进制文件,那么就是说,我的文件数据是那样,就要存储的是哪样的。那么就将1000001直接存入硬盘或内存,这样也存入的底部加粗的这样。这里放在一块,你可以看到,存入的数据一模一样,都是1000001.然而,两个文件一个要存入的是字母A,一个要存入的是65数字。实际上是不一样的,然而在计算机内部存储的却是一样的。
    事实上,所谓的二进制文件和文本文件,只是一种解释计算机内部文件数据的方式而已。当然,也是存入数据的一种方式。两种文件的读写不一样。文本文件要编码存入,要解码读出。而二进制文件就是直接的读写。一个文件数据代表什么,实际上就看你用什么方式去解释了。
    假如你以ASCII编码形式,将1.bin的内容解释成文本,最终你也看到1.bin文件中存储的是字母A。如果你直接以二进制解释1.bin文件,就看到的是十进制的65数字。
    总结一下,二进制文件和文本文件的区别,就在于存储的方式(写入的方式)和读取的方式(解释的方式)来区别的。在计算机内部,都是二进制形式的数据存放。