当前位置:首页  >  养生 > 文章正文

二进制和文本文件的区别(文本模式和二进制模式)

作者:佚名

看似问题简单,好多人搞不懂真正的区别,下面我们从底层的角度给大家分析一下

从C语言的角度来看,所有的文件都可简单的分为两类:一类是文本文件,另外一类是二进制文件。

1、文本文件:

所谓的文本文件,就是按照字符的编码规则(比如ASCII),1:1的根据你敲的字符形成的机器码文件。后缀习惯是以.txt结尾。一个典型的文本编辑器就是大家熟悉的记事本程序(notepad.exe)。

假设我们在记事本程序里面写入了如下的“ABC回车123回车abc”,并且保存为文件名为a.txt文件。如下图所示

二进制和文本文件的区别(文本模式和二进制模式)插图

a.txt

我们的问题是,在保存后,计算机究竟保存了什么样的信息?

我们用一个能够查看底层二进制代码的程序打开后,可以看到如下信息

二进制和文本文件的区别(文本模式和二进制模式)插图1

a.txt底层二进制代码

41 42 43 0D 0A 31 32 33 0D 0A 61 62 63 0D 0A(十六进制)

根据ANSI ASII规范表

二进制和文本文件的区别(文本模式和二进制模式)插图2

很明显:41->A ,42->B,43->C,换一行的回车,是由两个控制符 0D(CR)和0A(LF)决定的。其他的字符依次类推。

可见一个标准的ASCII文本文件,就是按照ASCII表的编码规则来进行1:1转换的。当然如果你是按照unicode编码,所有的字符按照两个字节代表一个字符的方式进行编码。在解析Unicode编码的文本文件时,就要按照两个字节为一个字符的方式进行二进制到文本的转换,这样才能正确解析。

有人可能要问,如果一个人用word保存的这些字符,是不是文本文件呢?答案是,不是。因为word文件在保存时,添加了很多的特定的格式化信息。我们以保存一个字符A为例,看看word 2010中的A在保存后,底层究竟是什么样的。下图截取了部分

二进制和文本文件的区别(文本模式和二进制模式)插图3

word文件底层代码截图

这只是一部分,可见又一大堆只有微软才了解的代码。

2、二进制文件

二进制文件是可以认为是所有非文本文件都称之为二进制文件。

要打开二进制文件,需要有形成这类文件的程序的内置的解析器,才能解读。这也解释了为什么不同的文件比如pdf,docx等文件,在编程的时候,必须要有相应的文档解析类函数来完成的原因了。

当然你完全可以用二进制方式打开任何一个文本文件,因为底层上就是那些代码,你只需要读取每一个字节,查找转化成相应字符予以显示就可以了,因为是你知道ASCII表的规则。

本文标签: 模式   插图   文本  

本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除,如需转载请保留原文地址:https://www.wanyaow.com/news/5259.html

关于我们 | 联系我们 | 法律声明 | 最近更新 | 网站地图 天气预报网| 传悦私服网| 美元汇率 |优学网

CopyRight 2022 www.wanyaow.com All Rights Reserved. 万药健康网 版权所有 | 冀ICP备20020072号

声明: 本站所有内容均只可用于学习参考,信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将在三个工作日内处理,联系邮箱:coolsec#foxmail.com