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

来源:互联网 发布:数据交换平台功能 编辑:程序博客网 时间:2024/05/31 19:13
    文本文件和二进制文件的区别

1.两者在物理上相同,在逻辑上是不同的

  • 计算机在存储物理上都是二进制的.所以二者在物理上相同

  • 在逻辑上,二者主要差别在于编码不同.

    • 文本文件是基于字符编码的文件,一般都是定长编码的(ASCII),也有非定长的(UTF-8)。

    • 二进制文件是基于值编码的文件,可看成是变长编码的,因为是值编码,多少个比特代表一个值,完全由你决定。如BMP文件

      blob.png


            其编码是基于值的(不定长的,2、4、8字节长的值都               有),所以BMP是二进制文

2.文本文件与二进制文件的存取不同

blob.png

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

  • 假如你以ASCII编码形式,将.bin的内容解释成文本,最终你也看到.bin文件中存储的是字母A。如果你直接以二进制解释1.bin文件,就看到的是十进制的65数字。

  • 如果要存储二进制文件,那么就直接将数据(10000001)存入硬盘或者是内存当中,数据不需要任何转化

  • 如果要存储文本文件,要先编码,然后再存入。(数据需要转化)

  • 文本文件要编码存入,要解码读出。而二进制文件就是直接的读写

    3.文本文件与二进制文件的优缺点


  • 文本文件可读性较好,存储要花费转换时间

       二进制文件可读性差,存储不用花费转化时间,直接读写


4.向文件写入数据时的注意点

  • 按照文本方式向文件中写入数据时,遇到“换行”符,则会转换为“回车-换行”符,存储,即当存放10(换行符)时,在文件中会存放 13 (回车)和10(换行),同时存储的文件就多了一个字节了

  • 而读取文本文件的时候,遇到13和10,也会合成ASCII10即换行符读取,

        而当按照二进制文件模式向文件中写入数据时,就会按照数据在内存中的存储形式原样输出到文件中,即存放10时,不会转换         为13和10, 所以如果以二进制方式向文件写入10时,当以文本方式(例如记事本)打开文件时,看到的会是一个小黑快,而            不是换行符,因为在文本文件中,只有遇到13 和 10的组合时才会转换为换行符。

  •  在文本处理上,CR(Carriage Return),LF(Line Feed),    CR/LF是不同操作系统上使用的换行符

是不同操作系统上使用的换行符

.

  • Dos和windows: 采用回车+换行CR/LF表示下一行. 

  •  UNIX/Linux  : 采用换行符LF表示下一行.     

  •  MAC OS      : 采用回车符CR表示下一行.   

  • CR用符号'\r'表示, 十进制ASCII代码是13, 十六进制代码为0x0D;  LF用符号'\n'表示, 十进制ASCII代码是10, 十六制为0x0A.


            


原创粉丝点击