二进制文件和文本文件到底有什么区别(权威)
![]() ![]() ![]() ![]() ![]() ![]() 从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。
16楼 liujingfu123 (Oh_My_GoD)
![]() 我也说两句吧:(摘抄自C语言之家) 什么是流(stream)? 流是程序输入或输出的一个连续的字节序列,设备(例如鼠标、键盘、磁盘、屏幕、调制解调器和打印机)的输入和输出都是用流来处理的。在C语言中,所有的流均以文件的形式出现----不一定是物理磁盘文件,还可以是对应于某个输入/输出源的逻辑文件。C语言提供了5种标准的流,你的程序在任何时候都可以使用它们,并且不必打开或关闭它们。以下列出了这5种标准的流。 ------------------------------------------------ 名称 描 述 例 子 ------------------------------------------------ stdin 标准输入 键盘 stdout 标准输出 屏幕 stderr 标准错误 屏幕 stdprn 标准打印机 LPT1端口 stdaux 标准串行设备 COM1端口 ------------------------------------------------ 需要注意的是,stdprn和stdaux并不总是预先定义好的,因为LPT1和COM1端口在某些操作系统中是没有意义的,而stdin,stdout和stderr总是预先定义好的。此外,stdin并不一定来自键盘,stdout也并不一定显示在屏幕上,它们都可以重定向到磁盘文件或其它设备上。 文本模式(textmode)和二进制模式(binarymode)有什么区别? 流可以分为两种类型:文本流和二进制流。文本流是解释性的,最长可达255个字符,其中回车/换行将被转换为换行符“\n”,(如果以"文本"方式打开一个文件,那么在读字符的时候,系统会把所有的"\r\n"序列转成"\n",在写入时把"\n"转成"\r\n" archim ‘s opinion )。二进制流是非解释性的,一次处理一个字符,并且不转换字符。 通常,文本流用来读写标准的文本文件,或者将字符输出到屏幕或打印机,或者接受键盘的输入;而二进制流用来读写二进制文件(例如图形或字处理文档),或者读取鼠标输入,或者读写调制解调器。 4楼 yhz (耗子)
![]() 如果用文本方式打开文件,会把“0D 0A”自动变换成“\n”来存在内存中。写入的时候反向处理。 而二进制方式打开的话,就不会有这个过程。 但是,Unicode/UTF/UCS格式的文件,必须用二进制方式打开和读写。 |
|
来自: Ralf_Jones > 《其它》