文本文件和二进制文件

大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异,最终存到磁盘里面的都是0和1组成的。

简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码)。

也就是说对每一个字符,文本文件都会用与之相对应的二进制值存储,反之亦然。例如A对应01000001,1对应00110001。二进制文件则不同,它是将内存中值的编码直接存储。举个例子,比如数值1234,文本文件存储为00110001 00110010 00110011 00110100,而二进制文件则会存储1234的二进制值00000100 01101010(假设以short类型)。

差别也就在这里,文本文件把所有东西都视为“字符”对待,编码确定了,每个字符对应的二进制也就确定了;二进制文件则会根据值的不同而改变,比如上面的1234,假如改为int类型,那就是00000000 00000000 00000100 01101010了,因为int类型占据四个字节。

另外,文本方式写时,每遇到一个''\n''(0AH换行符),它将其换成''\r \n''(0D0AH,回车换行),然后再写入文件;当文本读取时,它每遇到一个''\r\n''将其反变化为''\n'',然后送到读缓冲区.二进制读写时,其不存在任何转换,直接将写缓冲区中数据写入文件。


转载于:https://my.oschina.net/u/1772981/blog/524917

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值