计算机⽂件基本上分为⼆种:⼆进制⽂件和ASCII(也称纯⽂本
⽂件)
⽂本⽂件是可以看到的字符, ⼆进制⽂件是不可视字符,如图⽚.
⼆进制⽂件: 包含在及扩展 ASCII 中编写的数据或程序指令的⽂件。基本上分为⼆种:⼆进制⽂件和 ASCII(也称),图形⽂件及⽂字处理程序等都属于⼆进制⽂件。这些⽂件含有特殊的格式及计算机代码。ASCII 则是可以⽤任何⽂字处理程序阅读的简单⽂本⽂件。
由于很难严格区分⽂本⽂件和⼆进制⽂件的概念,所以我们可以简单地认为,如果⼀个⽂件专门⽤于存储⽂本字符的数据,没有包含字符以外的其他数据,我们就称之为⽂本⽂件,除此之外的⽂件就是⼆进制⽂件。
1之所以要区分两种⽂件模式,是忽悠初学计算机的⼈.
⽐如⼀篇⽂章,如果⽤中⽂写的,你⼀看就懂,你就可以蛋疼的定义它为⽂本模式
与之对应,同样内容,你⽤英⽂写的或者甲⾻⽂写的,你就可以定义为⼆进制模式
新华字典你姑且可以定义为"记事本",⽤对应看这篇⽂章,就是OK的
unicode码和ascii码区别
如果你⽤新华字典来尝试看英⽂写的⽂章,你就可以称呼它为乱码.
2.⼆种打开⽅式稍有区别,就是换⾏代码0D0A表⽰,⽂本认为它就是⼀个字符,⼆进制认位是2个字符
你就知道⽂本有多蛋疼了.
4.你把⽂本⽂件看成⼆进制⽂件的⼀种,就可以理解了,世界上本就没有所谓⽂本,都是吃多了撑出来的.
⽆论是⽂本⽂件,还是unicode 和ascii 的编码,这些都是⽂件的解释⽅式。
举个例⼦,⽂件⾥有个单词"apple",那么现在要求⽤中⽂模式打开,那么就会显⽰“苹果”,但是对于的⽂件内容来说,它还是apple,并没有变,只是解释⽅式变了。
好,来回答lz的问题:
1、为什么⽤fopen打开⽂件要分⼆制度和⽂本⽂件模式?
这是两种解释⽅式
2、⼆种打开⽅式在实现上有什么区别吗?
与其说打开⽅式,不如说是⽂件内容的解释⽅式。
⼆进制就是以字节来读取写⼊,没有任何的附加动作。
⽂本⽅式对回车和换⾏符进⾏了处理.
⼤家都知道计算机的存储在物理上是⼆进制的,所以⽂本⽂件与⼆进制⽂件的区别并不是物理上的,⽽是逻辑上的。这两者只是在编码层次上有差异。
简单来说,⽂本⽂件是基于字符编码的⽂件,常见的编码有ASCII编码,UNICODE编码等等。⼆进制⽂件是基于值编码的⽂件,你可以根据具体应⽤,指定某个值是什么意思(这样⼀个过程,可以看作是⾃定义编码)。从上⾯可以看出⽂本⽂件基本上是定长编码的(也有⾮定长的编码如UTF-8),基于字符嘛,每个字符在具体编码中是固定的,ASCII码是8个⽐特的编码,UNICODE⼀般占16个⽐特。⽽⼆进制⽂件可看成是变长编码的,因为是值编码嘛,多少个⽐特代表⼀个值,完全由你决定。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。