精华内容
下载资源
问答
  • 从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:ASC码: 00110101 ...

    从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。

    ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:

    ASC码:  00110101 00110110 00110111 00111000

    ↓     ↓    ↓    ↓

    十进制码: 5     6    7    8 共占用4个字节。ASCII码文件可在屏幕上按字符显示,

    例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。 由于是按字符显示,因此能读懂文件内容。

    二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为: 00010110

    00101110只占二个字节。二进制文件虽然也可在屏幕上显示,

    但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。

    输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。 因此也把这种文件称作“流式文件”。

    一个文件可以以文本模式或二进制模式打开,这两种的区别是:在文本模式中回车被当成一个字符'/n',而二进制模式认为它是两个字符0x0D,0x0A;如果在文件中读到0x1B,文本模式会认为这是文件结束符,也就是二进制模型不会对文件进行处理,而文本方式会按一定的方式对数据作相应的转换。

    展开全文
  • 文本文件二进制文件的存取 2、读取 文本文件:读取文件物理上所对应的二进制比特流(ASII码的文本文件,8个比特8个比特地来解释这个文件流) 二进制文件:一位位读取,需要特定的文件解码器 3、优缺点 文本文件...

    原文查看

    1、定义

    文本文件:这类文件以文本的ASCII码形式存储在计算机中。
    二进制文件:这类文件以文本的二进制形式存储在计算机中.

    文本文件与二进制文件的存取

    2、读取

    文本文件:读取文件物理上所对应的二进制比特流(ASII码的文本文件,8个比特8个比特地来解释这个文件流)

    二进制文件:一位位读取,需要特定的文件解码器

    3、优缺点

    文本文件:译码容易

    二进制文件:利用率高(文本文件缺点)

    4、C的文本读写和二进制文件读写

    文本方式写时,每遇到一个''\n''(0AH换行符),它将其换成''\r\n''(0D0AH,回车换行),然后再写入文件;

    当文本读取时,它每遇到一个''\r\n''将其反变化为''\n'',然后送到读缓冲区.正因为文本方式有''\n''--''\r\n''之间的转换,其存在转换耗时.

    二进制读写时,其不存在任何转换,直接将写缓冲区中数据写入文件.

     

    展开全文
  • 二进制文件和文本文件的区别

    千次阅读 2017-04-10 22:19:10
    文本文件二进制文件的定义  文本文件:是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。  二进制文件:是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以...

    文本文件与二进制文件的定义

      文本文件:是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。
      二进制文件:是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码。
      从上面可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8)。而二进制文件可看成是变长编码的,因为是值编码嘛,多少个比特代表一个值,完全由你决定。大家可能对BMP文件比较熟悉,就拿它举例子吧,其头部是较为固定长度的文件头信息,前2字节用来记录文件为BMP格式,接下来的8个字节用来记录文件长度,再接下来的4字节用来记录bmp文件头的长度。
     

     文本文件与二进制文件的存取

    1、二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放,也就是说存放的是数据的原形式。

    2、文本文件是把数据的终端形式的二进制数据输出到磁盘上存放,也就是说存放的是数据的终端形式。

    我们有必要把需要存储的数据分为字符数据和非字符数据两类。当你有数据要存储的时候.首先要考虑的问题并不是你要选择用二进制文件还是文本文件来进行存储,而是首先得考虑你要存储的数据是字符数据还是非字符数据.在此基础上再讨论应该选择用什么文件进行存储为好。

    一、如果要存储字符数据,无论是放在文本文件还是放在二进制文件中都和内存中的数据形式是没有区别的.同样也和终端形式没有区别。那么在存储和显示的特性上也没有任何区别,不浪费存储空间也不浪费转换时间。所以如果一个文件只存放字符数据,那么讨论该文件是用文本文件或是二进制文件是没有任何意义的。

    二、如果要存储非字符数据,则情况要复杂一些。

    1、如果您需要频繁地保存和访问数据.那么应该采用二进制文件进行存放,这样可以节省存储空间和转换时间。

    2、如果您需要频繁地向终端显示数据或从终端读人数据,那么应该采用文本文件进行存放,这样可以节省转换时间。

    三、如果要存储的数据中既有字符数据又有非字符数据那么要怎么办呢?那就要综合上述两点进行权衡以找到最佳平衡点了

    总结:字符数据本身在内存中就经过了编码,所以无论是二进制还是文本形式都是一样的,而对于非字符数据来说,例如inti=10;如果用二进制来进行存储的话为1010,但是如果需要用文本形式来进行存储的话就必须进行格式化编码(对1和0分别编码,即形式为‘1’和‘0’分别对应的码值)。

    文本文件与二进制文件的优缺点

      因为文本文件与二进制文件的区别仅仅是编码上不同,所以他们的优缺点就是编码的优缺点,这个找本编码的书来看看就比较清楚了。一般认为,文本文件编码基于字符定长,译码容易些;二进制文件编码是变长的,所以它灵活,存储利用率要高些,译码难一些(不同的二进制文件格式,有不同的译码方式)。关于空间利用率,想想看,二进制文件甚至可以用一个比特来代表一个意思(位操作),而文本文件任何一个意思至少是一个字符.
      在windows下,文本文件不一定是以ASCII来存贮的,因为ASCII码只能表示128的标识,你打开一个txt文档,然后另存为,有个选项是编码,可以选择存贮格式,一般来说UTF-8编码格式兼容性要好一些.而二进制用的计算机原始语言,不存贮兼容性. 很多书上还认为,文本文件的可读性要好些,存储要花费转换时间(读写要编译码),而二进制文件可读性差,存储不存在转换时间(读写不要编解码,直接写值).这里的可读性是从软件使用者角度来说的,因为我们用通用的记事本工具就几乎可以浏览所有文本文件,所以说文本文件可读性好;而读写一个具体的二进制文件需要一个具体的文件解码器,所以说二进制文件可读性差,比如读BMP文件,必须用读图软件.
      而这里的存储转换时间应该是从编程的角度来说的,因为有些操作系统如windows需要对回车换行符进行转换(将”\n”,换成”\r\n”,所以文件读写时,操作系统需要一个一个字符的检查当前字符是不是”\n”或”\r\n”).这个在存储转换在Linux操作系统中并不需要,当然,当在两个不同的操作系统上共享文件时,这种存储转换又可能出来。
    从存储方式来说,文件在磁盘上的存储方式都是二进制形式,所以,文本文件其实也应该算二进制文件。那么他们的区别呢,各自的优缺点呢?不急,我慢慢道来。

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

    先从他们的区别来说,虽然都是二进制文件,但是二进制代表的意思不一样。打个比方,一个人,我们可以叫他的大名,可以叫他的小名,但其实都是代表这个人。
    二进制读写是将内存里面的数据直接读写入文本中,而文本呢,则是将数据先转换成了字符串,再写入到文本中。
    下面我用个例子来说明:
    我们定义了一个结构体,表示一个学生信息,我们打算把学生的信息分别用二进制和文本的方式写入到文件中。

    struct Student 
    {
        int num;
        char name[20];
        float score;
    };

    我们定义两个方法,分别表示内存写入和文本写入
    //使用二进制写入

    
    #include <iostream>
    using namespace std;
    #include <fstream>
    
    struct Student 
    {
        int num;
        char name[20];
        float score;
    };
    
    void write_to_binary_file()
    {
        struct Student stdu;
        stdu.num = 111;
        sprintf_s(stdu.name,20,"%s","shine");
        stdu.score = 80.0f;
        fstream binary_file("test1.dat",ios::out|ios::binary|ios::app); //此处省略文件是否打开失败的判断
        binary_file.write((char *)&stdu,sizeof(struct Student));//二进制写入的方式
        binary_file.close();
    }
    
    //文本格式写入
    void write_to_text_file()
    {
        struct Student stdu;
        stdu.num = 111;
        sprintf_s(stdu.name,20,"%s","shine");
        stdu.score = 80.0f;
        FILE *fp = fopen("test2.dat","a+");   //此处省略文件是否打开失败的判断
        fprintf(fp,"%d%s%f",stdu.num,stdu.name,stdu.score); //将数据转换成字符串(字符串的格式可以自己定义)
        fclose(fp);
    }
    
    
    //MAIN函数调用前面两个方法
    int main()
    {
        write_to_binary_file();
        write_to_text_file();
    
        return 0;
    }
    展开全文
  • C语言中二进制文件和文本文件的区别

    千次阅读 多人点赞 2015-08-27 13:51:22
    所有的信息在内存中都是以二进制的形式进行存储的,这说明了二进制文件和文本文件不是在硬件上进行区分的。  二进制和文本文件因为操作系统的不同而不同,毕竟不同的人实现同一问题的思路也不是完全一样的嘛,首先...
    所有的信息在内存中都是以二进制的形式进行存储的,这说明了二进制文件和文本文件不是在硬件上进行区分的。
        二进制和文本文件因为操作系统的不同而不同,毕竟不同的人实现同一问题的思路也不是完全一样的嘛,首先说一下比较简单的那个:在Linux环境中,二进制文件和文本文件不进行区分。也就是说这两种方式在Linux操作系统下的实现机制是一样的;在OS X下面,太高大上了,用不到,所以也不关心;在Windows下面,二进制和文本文件是有区别的,下面就主要说明一下两者 在Windows环境下的区别以及对应的文件操作函数。
        首先来说明一下:文件是什么?文件的本质其实也就是一段存储空间,不过这段空间是位于磁盘上的。程序中使用文件的主要目的就是为了在程序结束后程序中的一些数据依旧能够得到保存以便下次使用或者直接查阅。
        我主要将Windows环境下二进制文件和文本文件的区别归为以下几方面:
        1、在Windows环境下,每一行结束的结束符是回车符和换行符的组合\r\n。C语言中是以\n作为换行符的。如果C程序是通过文本文件来处理的,那么它会很聪明地在这里做一个自动转换。在写入文本的时候,它会将\n转换为\r\n,在从文本读出来的时候,它会对应的将\r\n转换为\n。不得不吐槽一下,这个做法相对Linux来说很不好。

        2、对应的处理函数不同
            选择使用二进制文件还是使用文本文件需要在fopen()函数中的第二个参数打开模式进行选择。其中多一个字母b的为二进制文件,没有的对应为文本文件。

        2.1、文本文件操作函数

            1)写入文本文件
                int fputc(int c,FILE* pfile);
            2)读取文本文件
                mchar = fgetc(pfile);
            3)将字符串写入文本文件
                int fputs(char *pstr, FILE* pfile);//这个函数以'\0'为结束符,'\0'并不会被写入文件
            4)从文本文件读取字符串
                char *fgets(char *pstr, int nchars, FILE* pfile);//读到'\0'或者长度为nchars-1结束
        上面这两组函数主要用来将字符或字符串读/写入文本文件。当需要处理其他的数据类型时往往使用下面两个函数:
    格式化输入、输出
            5)格式化文件输出
                fprintf(pfile,"%...",XXX,XXX,XXX);//用法和printf一样
            6)格式化文件输入
                fscanf(pfile,"%...",XXX,XXX,XXX);//用法和scanf对stdin的操作一样
        格式化输入输出的缺点:精度不够,会造成浮点型变量精度丢失。
         以上三组IO操作都是文本文件操作。下面开始介绍二进制文件操作。
        二进制文件的优点有以下几点:
            1)没有数据转换,所以也就不存在精度丢失
            2)二进制文件的读写速度相比较于文本文件要快一点,因为文本文件需要做一些格式的改变。

        2.2、二进制文件读写函数:

            1)读函数
                fread
            2)写函数
                fwrite
         总结:

          我只能说,要尽量使用二进制读写函数来操作二进制文件,使用文本文件读写函数来操作文本文件,但这并不是强制的,你混用了编译器也不会报错,但是估计有时候结果并不是你想要得到的结果。
          如果写入的是文本文件,那么就请在读取时也使用文本文件,二进制文件也是一样,混用的话会导致一些很奇葩的问题。
          二进制文件和文本文件其实就是在文件的控制方面有一点不一样,这对于使用者来说其实都不会是太大的影响,关键是你要正确使用二进制文件和文本文件对应的IO操作函数。不要太过于纠结到底要使用哪个,因为它们两个在系统中都有实现。
    注:不足之处希望可以指出,谢谢

    展开全文
  • 不同的二进制文件需要不同的软件来打开,例如BMP文件,需要一个读图的软件来打开才能看到里面保存的图像,MP3文件需要一个播放器软件才能听到里面的音频。而文本文件只需要记事本就可以打开查看里面的内容。 2 ...
  • 介绍了换行回车符的历史及区别; C语言处理二进制文件和文本文件的唯一区别在于对换行的处理
  • 2、二进制文件和文本文件 (1)文件是在计算机内存中以二进制表示的数据在外部存储介质上的另一种存放形式。 (2)文件通常分为二进制文件和文本文件。 (3)二进制文件包含在 ASCII 及扩展 ASCII 字符中编写的...
  • 文本文件和二进制文件都是计算机文件,在计算机中的物理存储都是二进制的, 没有本质的区别;真正的区别是在逻辑上的,也就是编码层次上的差异。 ii. 文本文件是以ASCII码、Unicode码表示的纯文本文件,只能存储...
  • 二进制文件和文本文件的区别详解

    千次阅读 2019-06-30 10:55:09
    目录 区别 ... 最近学了一些Python上的文件操作,然后对二进制文件和文本文件产生了兴趣,看了好多好多博客才对这俩的区别有了初步的认识,不同的博客有不同的理解。我将我所看到的博客中的一些...
  • 其实并不然,计算机并不区分二进制文件和文本文件。所有的文件都是以二进制形式来存储的。 那么,以我们正常的思维来说,文本文件和二进制文件最直观的区别是什么呢?你可能已经发生过这样的事情:你用程序写...
  • 二进制文件文本文件的区别

    千次阅读 2017-05-03 16:27:48
    文本文件和二进制文件的定义: 计算机在物理内存上面存放的都是二进制,所以文本文件和二进制文件的主要区别是在逻辑上的而不是物理上的。而从文件的编码方式来看,文件可以分为文本文件和二进制文件文本文件...
  • BinaryGen是用来从您的节点生成二进制文件和文本文件的工具。 使用 该项目为您的语言定义了一个新方面: binaryGen 。 就像textGen一样,除了它会生成二进制文件而不是文本文件。 二进制生成器由一系列字段组成,...
  • 将文件看作是由一个一个字节(byte) 组成的,那么文本文件中的每个字节的最高位都是0,也就是说文本...其实不管是二进制文件也好,还是文本文件也好,都是一连串的01,但是打开方式不同,对于这些01的处理也就不同
  • 所谓二进制文件和文本文件对于字母而言没有什么不同,都是存储该字母的ASCII码值。能引起不同的是数字一些排版用符号的格式。 数字在二进制文件中会存储该数字的值,而文本文件中则首先将该数字视为字符量,并...
  • GBK16字库,内含二进制文本txt文本文件,直接解压即可使用。
  • 二进制文件文本文件

    万次阅读 多人点赞 2018-08-11 14:19:21
    二进制文件和文本文件都是按照二进制存储的,只不过文本文件是把一个字节一个字节解读成字符,而二进制文件可以任意定义解读方式。 在windows上,用记事本就可以打开文本文件了,但要打开二进制文件需要对应的...
  • 一、文本文件二进制文件的定义 大家都知道计算机的存储在物理上是二进制的,所以文本文件二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。 简单来说,文本文件是基于字符编码...
  • 二进制文件文本文件转换工具

    热门讨论 2010-04-21 16:03:28
    在论坛想上传文件,不行! 直接粘贴文件内容,不行!可能它是二进制文件。 怎么办,用“二进制文件文本文件转换工具” C#应用示例,含源码。
  • 二进制文件和文本文件的存储过程是不一样的。 一般来说,二进制文件要小于文本文件的。 1.二进制文件存储: 二进制文件存储不用符号什么的隔开,直接数与数紧挨在一起。比如10, 12的存储需要4个字节。存10的时候,...
  • 那就是二进制文件和文本文件中的内容到底是怎么读写的?我们为什么打开二进制文件看到的是一些乱码? 由于今天的时间充足,编找了一点相关资料,并总结了一下。 文件分为两类:文本文件二进制文件。 ...
  • 文件通常分为二进制文件和文本文件。   二进制文件包含在 ASCII 及扩展 ASCII 字符中编写的数据或程序指令的文件。一般是可执行程序、图形、图象、声音等等文件。   文本文件(也称为ASCII文件):它的每一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 362,764
精华内容 145,105
关键字:

包括二进制文件和文本文件