文件打开方式r和rb的区别有哪些
发表这个帖子的目的:(1)展示一下我的理解,大佬们帮忙看下,是否有哪里理解有误;(2)用r和rb读一个文件时是否还有一些其他的不同之处;
(3)我知道,我搜到的文章观点或许不是很正确,也或许叙述不是很全面,也或许是我理解有偏差。如果大佬有一些相关的文章的话,推荐一下让我学习学习也好。
一开始并不理解文本文件和二进制文件的区别,就上网搜了下,得到结论:
1、文本文件: 写入时,无论原内容是何格式,均将其理解为单个字符的集合,将每一个字符的ASCLL码保存下来,这样打开文件时就很容易看出来保存的是什么内容;
2、二进制文件:写入时,按照原内容在机器中保存的方式进行保存,这样打开文件时就有可能看到一堆乱码,因为无论是什么格式,打开时都会被解释成字符,然后我就试了下,发现字符并不会出现这种问题,即无论保存在哪种文件中都能一眼看出来是什么内容,不会出现乱码,然而,数据会出现这种问题,要么是乱码,要么是一片空白,或二者兼有。
3、文本文件读写与二进制文件读写速度,当我们需要查看文件内容时,二进制文件需要进行相应的转换,文本文件就省去了转换时间,当机器需要读取文件中的数据时,文本文件需要进行相应的转换,二进制文件就省去了转换时间。
4、文本文件与二进制文件对内存的使用率,字符的话,二者是一样的,数据的话,文本文件将其理解为单个字符的集合,故每位数字都需要一个字节来存储,二进制文件会保留其格式,故其占(short/unsigned short)2、(int/unsigned)4、(long/unsigned long)8、(long long/unsigned long long)16位,因此二者会因内容的不同而对内存的使用效率不同。
再后来,我发现读一个二进制文件时用r和rb没有啥区别,都是一样的准确无误的读出其中内容(试了下直接打开文件,我忘了试下通过函数进行读取并输出),继续上网,看了很多文章、帖子,所有的文章中提到的都是换行符的问题(文本文件中存储的是\r\n,二进制文件中存储的是\n)。
有点啰嗦了哈...主要是刚接触,很多东西都不懂,无论大佬是否提供信息,首先要感谢大佬抽出时间来看这一大堆字
[此贴子已经被作者于2019-1-11 23:28编辑过]