文本文件和二进制文件的区别是什么?
在定义和存取方式上二进制文件与文本文件存在区别。
1、定义上的区别
文本文件:文本文件是一种计算机文件,它是一种典型的顺序文件,其文件的逻辑结构又属于流式文件。简单的说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。
二进制文件:是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码)。用户一般不能直接读懂它们,只有通过相应的软件才能将其显示出来。二进制文件一般是可执行程序、图形、图像、声音等等。
从上面可以看出文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异,文本文件基本上是定长编码的(也有非定长的编码如UTF-8)。而二进制文件则可看成是变长编码,因为是值编码,多少个比特代表一个值,完全由你决定。
2、存储方式上的区别
文本工具打开一个文件,首先读取文件物理上所对应的二进制比特流,然后按照所选择的解码方式来解释这个流,然后将解释结果显示出来。
一般来说,你选取的解码方式会是ASCII码形式(ASCII码的一个字符是8个比特),接下来,它8个比特8个比特地来解释这个文件流。
记事本无论打开什么文件都按既定的字符编码工作(如ASCII码),所以当他打开二进制文件时,出现乱码也是很必然的一件事情了,解码和译码不对应。
文本文件的存储与其读取基本上是个逆过程。而二进制文件的存取与文本文件的存取差不多,只是编/解码方式不同而已。
二进制文件就是把内存中的数据按其在内存中存储的形式原样输出到磁盘中存放,即存放的是数据的原形式。文本文件是把数据的终端形式的二进制数据输出到磁盘上存放,即存放的是数据的终端形式
扩展资料
文本文件和二进制文件的优缺点:
一般认为,文本文件编码基于字符定长,译码容易些;二进制文件编码是变长的,所以它灵活,存储利用率要高些,译码难一些(不同的二进制文件格式,有不同的译码方式)。
关于空间利用率,想想看,二进制文件甚至可以用一个比特来代表一个意思(位操作),而文本文件任何一个意思至少是一个字符.
在windows下,文本文件不一定是以ASCII来存贮的,因为ASCII码只能表示128的标识,你打开一个txt文档,然后另存为,有个选项是编码,可以选择存贮格式,一般来说UTF-8编码格式兼容性要好一些.而二进制用的计算机原始语言,不存在兼容性。
存储方式的区别:
如果存储的是字符数据,无论采用文本文件还是二进制文件都是没有任何区别的。
如果存储的是非字符数据,又要看我们使用的情况来决定:
1、如果是需要频繁的保存和访问数据,那么应该采取二进制文件进行存放,这样可以节省存储空间和转换时间。
2、如果需要频繁的向终端显示数据或从终端读入数据,那么应该采用文本文件进行存放,这样可以节省转换时间。
参考资料来源:百度百科-文本文件
参考资料来源:百度百科-二进制文件
首先,可以说两者是相同的。因为对于存储在硬盘上的文件来说:都要用二进制的方式来存储的。
从这个意义上说,两者是相同的。
对二进制文件进行的加密、解密方法同样适用于文本文件。
如果说两者完全相同,那又不尽然。因为你用文本编辑器打开一个二进制文件的时候,多半会看到乱码,而打开文本文件,就不会看到乱码。这个实践表明,这两者是不同的。
那么为什么会这样呢?因为文本文件是二进制文件的一个子集。不光文本文件,一切其它格式的文件都是二进制文件的子集。例如jpg,avi,ppt,exe等文件也都是二进制文件的子集。
二进制文件可以作为计算机中所有文件的统称。
文件存储的时候,字节是最小的单元。一个字节可以存储0到255这256个数字。
某些数字在文本编辑器中,可以呈现为英文字符,例如:数字 97 就显示为英文的小写字母 a 。
文本文件只存储可见的字符。在只有英文的Ascii码文本文件中,每个字符的数值都不会大于 127 ,也不会等于127,除了数字 13 表示的回车,数字 10 表示的换行,数字9表示Tab缩进,其他的字符数值都大于32,数值32显示为空格。
二进制文件中有许多不可见的字符。所谓的不可见是:在普通的文本编辑器中没有定义该字符的显示方式。
当使用GB2312的汉字编码以后,用相邻的两个字节表示一个汉字。原本不可见的字符变的可见了。这时候,文本文件中的字节有许多高位置1,大致上使用了0到255中的每一个数。为什么说大致呢?因为你去查GB2312的码表,会发现每个区FF的位置都是空着的,也就是不使用数字255。这是为什么呢?
数字255在某些情况下也是-1,这个数字可以看作文本文件的禁区。也就是说,二进制文件中,每个字节都可以在0到255之间任意的挑选;文本文件的字节则不能使用数字255。
GB2312码表0的位置也是空出来的,这是为什么呢?
答案是:为了能兼容传统的c语言程序。
如果c语言程序在处理一个字符串,遇到了0,那么程序认为字符串结束了。所以,文本文件的字节中不能使用数字0,以避免程序处理到一半就终止了。
而数字255更是不能出现的,255在表示有符号的char时,就是-1,在c语言中定义为EOF(End Of File)。也就是说,某些传统的c语言程序,例如getchar( )在返回-1的时候,程序员就认为该文件结束了。所以,这个数字不能出现在文本文件的内容中。
传统意义上,文本文件有禁区,最初的0和最终的255,是文本文件的禁区。
所有不可见的Ascii码也是禁区。
而二进制文件没有任何约束。
各种对文本文件的编码方式,都会尽量避免打破这个禁区。但在Unicode定义以后,这个禁区被打破了。Unicode定义了BOM,也就是在文本文件的开头加入几个不可见的字节,来表示这个文件的编码方式。
从这以后,文本文件中就可以存储不可见的字符了,不再是那么纯粹的文本文件。UTF-8编码的文件本来可以不使用BOM的,但微软也为它设计了BOM,这是一个字符,编码是(Unicode FEFF),转化为UTF8形式以后是(EF BB BF)。
尽管打破了禁区,但只限定于文件开头的两三个字节。
这可以看作一种黑客的解决问题方式,不优雅,也不美观。因为黑客有办法在文本文件中插入更多的不可见字符,普通人不知道如何操作。
有了 BOM以后,出现了字节FF,这意味着数字255不再是禁区。虽然不显示出来,但是它像一根针,插入文本文件的开头。
但有了UTF-16编码以后,禁区彻底打破了,文本文件的编码如果按照UTF-16的方式存储,除了开头有BOM以外,所有不可见的ASCII码和扩展Ascii码都可以成为某个字符的一部分。也就是说,没有任何禁区。文本文件中可以存储任何数值的字节。
文本文件可以在文本编辑器中显示,二进制文件可以在二进制编辑器中显示。没有什么东西不能显示。
所以,如果再问文本文件和二进制文件的区别是什么,答案就是:
没有区别。
c语言中,二进制文件和文本文件有什么区别?
没有本质的区别,文本文件按二进制打开,也是二进制的。。。二进制文件按文本打开也是文本的。至于内容上看,是二进制的人们很难一下分辨内容;而文本的则可以。~~~
请问什么是二进制文件 什么是ASCII 什么是文本文件 它们之间有什么区别...
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:5 6 7 8 二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为: 00010110 00101110只占二个字节。二进制文件虽然也可在屏幕上显示, 但其内容...
文本文件和二进制文件
您好,我将要依次回答您的问题 1.文本文件的话 写入整数(a=12345)在文件中会显示12345 写入(string str=“12345”)是一样的,在文件中储存的都是按ascII码,按照字节储存字符。2.如果是2进制a=12345写入的是2进制数,如果您用2进制文件工具打开将会看到 30 39,而string str=“12345”储存的...
二进制文件与文本文件的区别
文本文件一般是指 Text (ASCII 字符)文件, 在DOS 下即可打开看。二进制文件是特定格式的文件, 一般需专用软件才能打开。
【编程基础知识(二)】 文件类型和编辑器
编辑器的选择 文件资源管理器虽然可以操作文件,但编辑任务则需要专业的编辑器。文本编辑器,如记事本,专注于文本内容的处理,适合无格式的文本工作。然而,为了提升效率,高级文本编辑器提供了更多高级功能,如语法高亮、代码补全等,这对于编程工作尤其重要。二进制文件的处理 与之相反,二进制文件...
使用普通文本文件编辑软件也可以正常查看二进制文件的内容,这句话为什...
文件类型分为文本文件和二进制文件两种。文本文件是以字符编码的方式进行保存的。二进制文件将内存中数据原封不至文件中,适用于非字符为主的数据。如果以记事本打开,只会看到一堆乱码。其实,除了文本文件外,所有的数据都可以算是二进制文件。二进制文件的优点在于存取速度快,占用空间小,以及可随机存取...
C语言中的二进制文件与文本文件怎样区分?
二进制文件,一般是以bin结尾,文本文件一般是txt。当然还有很多,主要还得打开看看。如果想看看的话,txt普通方式打开,二进制文件用vc打开就行。
我想问一下怎么将网页以文本文件格式保存
展开后点击普通视图就可以了,方法是比较简单的。资料拓展:文本文件是一种计算机文件,它是一种典型的顺序文件,其文件的逻辑结构又属于流式文件。文本文件是指一种容器,而纯文本是指一种内容,文本文件可以包含纯文本。一般来说,计算机文件可以分为两类:文本文件和二进制文件。
请问什么是二进制文件 什么是ASCII 什么是文本文件 它们之间有什么区别...
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:5 6 7 8 二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为: 00010110 00101110只占二个字节。二进制文件虽然也可在屏幕上显示, 但其内容无法读懂。
文本文件和2进制文件有什么区别,一个文本文件是TXT,把这个文件压缩成RA...
首先说明一下 txt和rar都可以称作2进制文件 因为计算机上所有数据都是2进制的 txt规范 除去文件头外所有数据以每8\/16位数据组成一个字符代码 比如 00011101000111010001110100011101(2)按ascii文本打开就是 aaaa rar属于未公开格式 不知道其格式 就不知到如何解释比如 还是上面那段数据 如果我的格式规范为最...
机饶热毒: 在定义和存取方式上二进制文件与文本文件存在区别. 1、定义上的区别 文本文件:文本文件是一种计算机文件,它是一种典型的顺序文件,其文件的逻辑结构又属于流式文件.简单的说,文本文件是基于字符编码的文件,常见的编码有ASCII...
沿滩区17283516485: 二进制文件和文本文件到底有什么区别 - ?
机饶热毒: 计算机能识别的都是二进制代码,不论是文本文件还是音频视频类的多媒体文件都需要转换成二进制文件,计算机才能识别,这就需要有个转换过程:高级语言→汇编语言→机器语言,计算机只能识别的语言--机器语言.就讲二进制文件和文本文件的区别的话,二进制文件全都是0和1组成的,而文本文件是由字母、数字、符号等组成......
沿滩区17283516485: 文本文件和二进制文件的差异和区别 - ?
机饶热毒: 文本文件是二进制文件的一种特例,其中写的字符能被控制台直接显示,都是可显示字符,二进制文件没有这个限制,因此数据比较紧凑,尺寸要比文本文件小.比如:存储3.1415926,文本文件存放的是字符串"3.1415926"占用9字节,二进制文件当成双精度浮点数存放占用4字节
沿滩区17283516485: 二进制文件与文本文件的区别?
机饶热毒: 严格的说其实计算机中所有的文件以及信息均以二进制的信号储存,所谓的文本文件也是一种二进制文件你说的文本文件,应该是文件的内容是以标准的文字编码组成的文件,即通过相应的程序,如notebook等可将文件的内容还原为人类的文字信息.如什么readme.txt等等而你所示的二进制文件应该是说内容是机器代码,即编译后的程序代码.一般是.exe或com、bin结尾是可执行文件.其关系为c或.java等的源程序(人写的,当然是人能看懂的)经编译、翻译软件处理得.exe或其他得机器代码(可执行程序)(机器语言,二进制机器代码
沿滩区17283516485: 对于二进流文件,二进制文件和文本文件有什么区别 - ?
机饶热毒: 这里要说一个背景,那就是在windows下,它会做一个处理,就是写文件时,换行符会被转换成回车,换行符存在磁盘文件上,而读磁盘上的文件时,它又会进行逆处理,就是把文件中连续的回车,换行符转换成换行符.因此,在读取一个磁盘...
沿滩区17283516485: windows中文本文件跟二进制文件有什么区别 - ?
机饶热毒: 两者并无本质的区别 或者可以说,文本文件是某种特殊的二进制文件 比如某个文件中的内容是3C 68 74 6D 6C 3E 0D 0A 用记事本打开显示的就是<html> 而如果一个文件中的内容是42 4D C6 9E 04 00 00 00 00 00 36 00 00 00 28 00 用画图软件...
沿滩区17283516485: 文本文件和2进制文件有什么区别,一个文本文件是TXT,把这个文件压缩成RAR就是2进制文件了? - ?
机饶热毒: 首先说明一下 txt和rar都可以称作2进制文件 因为计算机上所有数据都是2进制的 txt规范 除去文件头外所有数据以每8/16位数据组成一个字符代码 比如 00011101000111010001110100011101(2) 按ascii文本打开就是 aaaa rar属于未公开格式 不...
沿滩区17283516485: c语言里面文本文件和二进制文件有什么区别 - ?
机饶热毒: C 语言中文本文件和二进制文件的区别:Windows 平台中,程序中是 "\n",对应的文件内容是 "\r\n";而二进制文件的写入和读取按其原样.例:定义 fp 是 Windows 平台中以文本文件形式打开的文件指针,则 fprintf(fp, "\n"); 运行后,文件中多了 "\r\n".Mac 平台中,程序中是 "\n",对应的文件内容是 "\n\r";而二进制文件的写入和读取按其原样.例:定义 fp 是 Mac 平台中以文本文件形式打开的文件指针,则 fprintf(fp, "\n"); 运行后,文件中多了 "\n\r".Linux 平台中,文本文件和二进制文件没有任何区别.
沿滩区17283516485: 浅谈二进制文件读写和文本文件读写的区别 - ?
机饶热毒: 从存储方式来说,文件在磁盘上的存储方式都是二进制形式,所以,文本文件其实也应该算二进制文件.那么他们的区别呢,各自的优缺点呢?不急,我慢慢道来.先从他们的区别来说,虽然都是二进制文件,但是二进制代表的意思不一样....
沿滩区17283516485: linux怎么区别文本文件和二进制文件 - ?
机饶热毒: (1)、文本文件 文本文件是包含用户可读信息的文件.这些文件以ASCII码方式存储,可显示和打印.文本文件的行不能包括空字符(即码中的NULL),行的最大长度(包括换行符在内)也不能超过(LINE_MAX)所定义的字节数.不过文本文件中并不限制使用除空字符以外的控制字符或其它不可打印字符. (2)、二进制文件(实际上这种说法不准确,因为文本文件也是用二进制代码存放的,称为非文本文件比较好) 二进制文件是包含计算机可读信息的文件.二进制文件可以是可执行的文件,使系统根据其中的指令完成某项工作.命令和程序都是以可执行的而进制文件方式存储.二进制文件没有行的长度限制,也可包含空字符.