二进制文件流读写-C++

为什么要用二进制写文件

计算机在物理上的存储是以二进制方式存储的,那么文本文件与二进制文件的区别就是物理存储上的吗?

不,而是逻辑上的,这两者只是在编码层次上有差异,文本文件是基于字符编码的文件,常见编码有ascll编码,unicode编码等,二进制文件是基于值编码的文件,可以根据应用,指定某个值是什么意思(这样一个过程可以看作是自定义编码);

文本文件基本上是定长编码的,基于字符,每个字符在具体编码中是固定的,ascll码是特定的编码,而二进制可以看作是变长编码

第一:

使用二进制文件比较节约空间,比如在存储数字,特别实型数字时,二进制更节省空间

第二:

计算机物理内存中都是用二进制无格式存储起来的,所以二进制存储到文件就更快捷,如果存储为文本文件时,需要转换的过程,所以在数据量很大时,两者的差别就会体现出来

第三:

一些比较精确的数据,使用二进制存储不会造成有效位丢失.

文本文件与二进制文件的区别:

*
写入数字 1,实际写入的是 字符 '1'

*
二进制文件:写数字1,实际写入的是整数 1 ;

*
1的二进制是0001 (所占4个字节,最低是1, 追高3个字节都是0);

写入二进制文件

使用文件流对象的write方法写入二进制数据.

*
演示

输出入一个整数:

*
*
读二进制文件

使用文件流的read方法.

*
演示

*

*
输出结果为:

*

*
更多技术交流欢迎来到~奇牛

*

技术
©2019-2020 Toolsou All rights reserved,
HashMap详解某东14薪变16薪,是诚意还是套路?浏览器内核(理解)java四大函数式接口(重点,简单)html写樱花树,写樱花树的作文让人意想不到的Python之樱花树(turtle库的华丽样式)os模块的简单使用