一、写
二进制方式写,当遇到整型和浮点数时是以小端模式的整个十六进制值写入到文件中(和内存中一样),当遇到ascii字符和utf-16(unicode)类型的字符时候是用该编码的key值(unicode 16字节时候不作为小端模式而是书写模式存储)写入到文件中(和内存中一样)。
文本方式写,文本方式会根据当前程序使用的编码方式,将所有整型/浮点数/字符,都当做字符一个个映射到编码方式中的key,然后写入到文件中,windows下如果遇到'\n' 换行符那么会翻译为"\r\n"写入到文件中(linux下不会),所以文本方式存在一个程序内存数据到文件存储数据之间有一个翻译的过程。
二、读
二进制读二进制写入的文件,那么可以直接读取到结构体中填充数据得到结果。二进制读取文本文件,就是文本文件原来的样子读取到内存中"\r\n"当做两个字符读取到内存中。
文本方式读二进制文件会失败。文本方式读取文本文件遇到"\r\n"会转换为'\n"读取到内存中。
所以二进制方式和文本方式读取文本文件,得到的结果还是存在细微差异的。
二进制文件读写优缺点:
1.二进制文件存储图形图像数据和数值数据占用的空间少,读写速度快。
2.二进制文件在内存中可以用fseek函数等,程序中处理起来比较灵活。
3.二进制读文本文件会将"\r\n"全部读取出来,不便于程序处理。
4.二进制文件的可移植性可能会出现问题,因为机器不一样位数和浮点数的标准不一样的话,会导致读入到内存里面发生差异。
文本文件的读写优缺点:
1.处理文本文件较方便,但是效率相对慢点。
2.文本文件读取因为“\r\n"会变成"\n",程序中建议不能用fseek处理,程序处理没有那么灵活。
2.文本文件的可移植性也可能会有问题,
因为添加"\r\n"的符号,但是比二进制文件好些。