首页 > 编程笔记
文件的文本打开方式和二进制打开方式的区别
在 UNIX/Linux 平台中,用文本方式或二进制方式打开文件没有任何区别。
在 UNIX/Linux 平台中,文本文件以
在 Windows 平台中,如果以文本方式打开文件,当读取文件时,系统会将文件中所有的
也就是说,如果要写入的内容中有字节为 0x0a,则在写人该字节前,系统会自动先写入一个 0x0d。因此,如果用文本方式打开二进制文件进行读写,读写的内容就可能和文件的内容有出入。
因此,用二进制方式打开文件总是最保险的。
在 UNIX/Linux 平台中,文本文件以
\n
(ASCII 码为 0x0a)作为换行符号;而在 Windows 平台中,文本文件以连在一起的\r\n
(\r
的 ASCII 码是 0x0d)作为换行符号。在 Windows 平台中,如果以文本方式打开文件,当读取文件时,系统会将文件中所有的
\r\n
转换成一个字符\n
,如果文件中有连续的两个字节是 0x0d0a,则系统会丢弃前面的 0x0d 这个字节,只读入 0x0a。当写入文件时,系统会将\n
转换成\r\n
写入。也就是说,如果要写入的内容中有字节为 0x0a,则在写人该字节前,系统会自动先写入一个 0x0d。因此,如果用文本方式打开二进制文件进行读写,读写的内容就可能和文件的内容有出入。
因此,用二进制方式打开文件总是最保险的。