程序 文件存储与二进制数据流存储的优缺点对比?
2个回答
展开全部
在磁盘的存储上都是二进制存储这点上都一样。
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:
ASC码: 00110101 00110110 00110111 00111000
↓ ↓ ↓ ↓
十进制码: 5 6 7 8 共占用4个字节。ASCII码文件可在屏幕上按字符显示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。 由于是按字符显示,因此能读懂文件内容。
二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为: 00010110 00101110只占2个字节。二进制文件虽然也可在屏幕上显示, 但其内容无法读懂。
流可以分为两种类型:文本流和二进制流。文本流是解释性的,最长可达255个字符,其中回车/换行将被转换为换行符“/n”,(如果以"文本"方式打开一个文件,那么在读字符的时候,系统会把所有的"/r/n"序列转成"/n",在写入时把"/n"转成"/r/n" archim 's opinion )。二进制流是非解释性的,一次处理一个字符,并且不转换字符。
通常,文本流用来读写标准的文本文件,或者将字符输出到屏幕或打印机,或者接受键盘的输入;而二进制流用来读写二进制文件(例如图形或字处理文档),或者读取鼠标输入,或者读写调制解调器。
如果用文本方式打开文件,会把“0D 0A”自动变换成“/n”来存在内存中。写入的时候反向处理。 而二进制方式打开的话,就不会有这个过程。
所以从上面可以看出:文本文件占磁盘空间大,读取速度比较慢,但打开后容易理解;二进制文件占磁盘空间小,读取速度快,如果要理解文件文件的意思需要自己进行解释。
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:
ASC码: 00110101 00110110 00110111 00111000
↓ ↓ ↓ ↓
十进制码: 5 6 7 8 共占用4个字节。ASCII码文件可在屏幕上按字符显示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。 由于是按字符显示,因此能读懂文件内容。
二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为: 00010110 00101110只占2个字节。二进制文件虽然也可在屏幕上显示, 但其内容无法读懂。
流可以分为两种类型:文本流和二进制流。文本流是解释性的,最长可达255个字符,其中回车/换行将被转换为换行符“/n”,(如果以"文本"方式打开一个文件,那么在读字符的时候,系统会把所有的"/r/n"序列转成"/n",在写入时把"/n"转成"/r/n" archim 's opinion )。二进制流是非解释性的,一次处理一个字符,并且不转换字符。
通常,文本流用来读写标准的文本文件,或者将字符输出到屏幕或打印机,或者接受键盘的输入;而二进制流用来读写二进制文件(例如图形或字处理文档),或者读取鼠标输入,或者读写调制解调器。
如果用文本方式打开文件,会把“0D 0A”自动变换成“/n”来存在内存中。写入的时候反向处理。 而二进制方式打开的话,就不会有这个过程。
所以从上面可以看出:文本文件占磁盘空间大,读取速度比较慢,但打开后容易理解;二进制文件占磁盘空间小,读取速度快,如果要理解文件文件的意思需要自己进行解释。
展开全部
二进制文件和文本文件都是用0和1这样的数字来储存的,那么为什么一个是二进制文件,一个是文本文件呢?
这个取决于他的编码方式,比如下面这段
16进制49这个数,
他的二进制格式为:01001001
这段数字他本身只是一段数字,他只能表示01的这么一个序列,他不能表示任何信息
关键在于我们解读他的方式
如果我们按照char类型的数据来解读它,那么他就是字符 ‘I’
如果我们按照int型的数据来解读它,那么它就是数字73
所谓的文本文件和二进制文件,它里面储存的都是01数列,但是文本文件我们都只以字符的形式来识别他,而二进制文件在文本编辑器中,我们以字符的形式来识别他,但是在程序中我们直接将这串数列取出来,交由程序来判断要以什么形式来取用它,就有了更多的选择
这就是他们的区别,人本身很难判断出一个文件是不是二进制的,比如一个程序将它所有字符串型数据以二进制的格式存入,用文本编辑器看感觉他就是个文本文件,但实际上不是。
如果硬要算得话,二进制文件文件扩展名是.bat文本文件是.txt这只是人们的一种约定俗成
二进制文件因为是直接存取2进制数字串,比用文本文件存取更快,更节省空间
比如刚才int型数据73,如果我们把它存入文本文件,那么程序会将他先转化为字符串“73”,再拆分成单个的字符‘7’‘3’,然后再将每个字符以ASCll码得形式转化为2进制模式,然后存入文本文件,读取的过程相反,然而有了这个过程程序的读取操作自然赶不上直接把73的二进制数直接存入文件来的要快,而且本身73是:01001001,只需要2个字节,但是转成ASCll码存储,7要占2个,4也要占两个,增加了一倍,所以程序读取二进制文件更高效更省空间
不过人很难解读二进制文件,所以如果用于人机交互,通常会将二进制文件转化成文本文件以便于人们解读
这个取决于他的编码方式,比如下面这段
16进制49这个数,
他的二进制格式为:01001001
这段数字他本身只是一段数字,他只能表示01的这么一个序列,他不能表示任何信息
关键在于我们解读他的方式
如果我们按照char类型的数据来解读它,那么他就是字符 ‘I’
如果我们按照int型的数据来解读它,那么它就是数字73
所谓的文本文件和二进制文件,它里面储存的都是01数列,但是文本文件我们都只以字符的形式来识别他,而二进制文件在文本编辑器中,我们以字符的形式来识别他,但是在程序中我们直接将这串数列取出来,交由程序来判断要以什么形式来取用它,就有了更多的选择
这就是他们的区别,人本身很难判断出一个文件是不是二进制的,比如一个程序将它所有字符串型数据以二进制的格式存入,用文本编辑器看感觉他就是个文本文件,但实际上不是。
如果硬要算得话,二进制文件文件扩展名是.bat文本文件是.txt这只是人们的一种约定俗成
二进制文件因为是直接存取2进制数字串,比用文本文件存取更快,更节省空间
比如刚才int型数据73,如果我们把它存入文本文件,那么程序会将他先转化为字符串“73”,再拆分成单个的字符‘7’‘3’,然后再将每个字符以ASCll码得形式转化为2进制模式,然后存入文本文件,读取的过程相反,然而有了这个过程程序的读取操作自然赶不上直接把73的二进制数直接存入文件来的要快,而且本身73是:01001001,只需要2个字节,但是转成ASCll码存储,7要占2个,4也要占两个,增加了一倍,所以程序读取二进制文件更高效更省空间
不过人很难解读二进制文件,所以如果用于人机交互,通常会将二进制文件转化成文本文件以便于人们解读
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询