文本打开和二进制打开文件的区别

文本文件和二进制文件的区别

文件的本质都是以二进制保存在磁盘上的数据,所以从物理上讲二者并无区别。

文本文件保存的是用文本编辑器打开后人可以看懂的内容,二进制文件保存的是看不懂的。

说白了就是二进制文件大多是图片,视频,程序,采用的是jpg,mp4,exe等编码格式,文本编辑器无法解析,文本文件则使用的是UTF-8,GBK等文本编辑器可以识别的编码格式

两种打开方式的区别

文本方式和二进制方式并没有本质上的区别,只是对于换行符的处理不同。

在 UNIX/Linux 平台中,用文本方式或二进制方式打开文件没有任何区别,因为文本文件以 \n 作为换行符号。

但在 Windows 平台上,文本文件以连在一起的 \r\n 作为换行符号。如果以文本方式打开文件,当读取文件时,程序会将文件中所有的 \r\n 转换成一个字符 \n。也就是说,如果文本文件中有连续的两个字符是 \r\n,则程序会丢弃前面的 \r,只读入 \n。

同样当写入文件时,程序会将 \n 转换成 \r\n 写入。也就是说,如果要写入的内容中有字符 \n,则在写入该字符前,程序会自动先写入一个 \r。

因此在 Windows 平台上,如果用文本方式打开二进制文件进行读写,读写的内容就可能和文件的内容有出入。

总的来说,Linux 平台使用哪种打开方式都行;Windows 平台上最好用 “ios::in | ios::out” 等打开文本文件,用 “ios::binary” 打开二进制文件。但无论哪种平台,用二进制方式打开文件总是最保险的。

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2023 J-sycamore