相同点
文本文件和二进制文件在物理上都是以二进制(01)存储的。
不同点·写入
以文本方式写文件(w/w+),遇到'\n'字符时,自动转换成'\r''\n',变成2个字符再存
以二进制方式写文件(wb/wb+),遇到'\n'时,不转换,直接存该字符
当写入的数据中有'\n'时,文本方式写文件速度要慢(有转换),写的文件要大(多了'\r')
不同点·读取
以文本方式读文件(r/r+),遇到'\r''\n'时,转换成'\n',变成一个字符
以二进制方式读(rb/rb+),遇到'\r''\n'时,不转换,还是两个字符
当读取的数据中有''\r'\n'时,文本方式读文件速度要慢(有转换)
结论
当你要存入的数据没有'\n'时,无论使用文本还是二进制方式,得到的文件大小都是一样的
要想压缩文件大小,只能从数据编码下手
例如 12、14两个数字,就可以存入1个字节(12<<4 | 14)
建议
写自定义编码的二进制文件,使用 fwrite 函数