文本文件和二进制文件的区别
来源:互联网 发布:数据交换平台功能 编辑:程序博客网 时间:2024/05/31 19:13
1.两者在物理上相同,在逻辑上是不同的
计算机在存储物理上都是二进制的.所以二者在物理上相同
在逻辑上,二者主要差别在于编码不同.
文本文件是基于字符编码的文件,一般都是定长编码的(ASCII),也有非定长的(UTF-8)。
二进制文件是基于值编码的文件,可看成是变长编码的,因为是值编码,多少个比特代表一个值,完全由你决定。如BMP文件
其编码是基于值的(不定长的,2、4、8字节长的值都 有),所以BMP是二进制文
2.文本文件与二进制文件的存取不同
假如你以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.
- 文本文件和二进制文件的区别
- 文本文件和二进制文件的区别
- 文本文件和二进制文件的区别
- 二进制文件和文本文件的区别
- 文本文件和二进制文件的区别
- 文本文件和二进制文件的区别
- 二进制文件和文本文件的区别
- 二进制文件和文本文件的区别
- 二进制文件和文本文件的区别
- 文本文件和二进制文件的区别
- 文本文件和二进制文件的区别
- 文本文件和二进制文件的区别
- 文本文件和二进制文件的区别
- 文本文件和二进制文件的区别
- 文本文件和二进制文件的区别
- 文本文件和二进制文件的区别
- 文本文件和二进制文件的区别
- 文本文件和二进制文件的区别
- css : div
- log4j参数部分解释
- 栈(stack) 实现字符串反转
- lr学习笔记--1个用户2个投标操作;2个用户分别进行一次操作设置
- 最小生成树之克鲁斯卡尔(Kruskal)算法
- 文本文件和二进制文件的区别
- cocoapod升级终极篇
- Mybatis 面试题
- centos7下gitlab服务器搭建
- 关于Xcode窗口里面有条竖线的问题
- Mysql查询依据结果排名功能
- hdu 6060 RXD and dividing(树)(2017 Multi-University Training Contest
- python中利用itchat实现自动回复
- Gradle自定义插件详解