精华内容
下载资源
问答
  • 2、二进制文件和文本文件 (1)文件是在计算机内存中以二进制表示的数据在外部存储介质上的另一种存放形式。 (2)文件通常分为二进制文件和文本文件。 (3)二进制文件是包含在 ASCII 及扩展 ASCII 字符中编写的...

    1、C语言中缺省是按照文本方式打开文件。

    2、二进制文件和文本文件
    (1)文件是在计算机内存中以二进制表示的数据在外部存储介质上的另一种存放形式。
    (2)文件通常分为二进制文件和文本文件。
    (3)二进制文件是包含在 ASCII 及扩展 ASCII 字符中编写的数据或程序指令的文件。一般是可执行程序、图形、图象、声音等等文件。
    (4)文本文件(也称为ASCII文件):它的每一个字节存放的是可表示为一个字符的ASCII代码的文件。它是以 “行”为基本结构的一种信息组织和存储方式的文件,可用任何文字处理程序阅读的简单文本文件。

    3、文本方式和二进制方式

    (1)按照文本方式(缺省情况下)往文件中写入数据时,一旦遇到换行字符(ASCII为10),则会转换为回车-换行(ASCII为13、10)。多写入了一个字符!在读取文件时,一旦遇到回车-换行的组合(即连续的ASCII 13、10),则会转换为换行字符(ASCII为10)。
    (2)当我们按照二进制方式往文件中写入数据,则将数据在内存中的存储形式原样输出到文件中。
    (3)在写入和读取文件时要保持一致。如果采用文本方式写入,应采用文本方式读取;如果采用二进制方式写入数据,在读取时也应采用二进制方式。
    (4)不管是文本文件还是二进制文件,如果统一采用二进制方式进行写入和读取,则是不会出错的。

    (5)不管是文本文件还是二进制文件,都可以采用二进制方式或者文本方式打开,然后进行写入或者读取。但是,对于二进制文件来说,如果以文本方式读取时,可能会出现一些问题。

    4、问题产生:给你一个整数,例如:98341,将这个整数保存到文件中,要求在以记事本程序打开该文件时,也显示98341。
           如果直接将98341写入文本文件中,然后再打开这个文件肯定看不到这个整数。因为对于文本文件来说,它的每一个字节存放都是可表示为一个字符得ASCII码。如果想在记事本中看到98341这个样子,实际上是得在记事本中看到“这几个字符相应的ASCII码转换后的字符”,也就是说,在记事本中看到的“98341”是五个字符,并不是整数:98341!
    文件实际上就是数据内存中的存储形式在外部存储介质上的另一种存放形式。当以记事本打开上述文件,也就是以文本方式打开该文件时,该文件中存储的每一个字节的数据都要作为ASCII码进而转换为相应的字符,但是上述文件中的每一个字节的数据转换为字符之后又是不可读的,因此看到的就是乱码。

    直接int i=98341;fwrite(&i,4,1,file);这样只会输出乱码。

    解决办法:

    (1):

    FILE *file;
    file=fopen("1.txt","w");
    char *p="98341";
    fwrite(p,1,5,file);
    fclose(file);
    
    或者(2)
    FILE *file;
    file=fopen("1.txt","w");
    char ch[5];
    ch[0]='9';
    ch[1]='8';
    ch[2]='3';
    ch[3]='4';
    ch[4]='1';
    fwrite(ch,1,5,file);
    fclose(file);
    或者(3):我们在存储时去存储“98341”这五个字符的ASCII码(字符“0”的ASCII码是48)。
    FILE *pFile=fopen("3.txt","w");
    int i=98341;
    char ch[5];
    ch[0]=9+48;
    ch[1]=8+48;
    ch[2]=3+48;
    ch[3]=4+48;
    ch[4]=1+48;
    fwrite(ch,1,5,pFile);
    fclose(pFile);
    或者(4)利用itoa()函数将证书转换为字符串,然后将这个字符串写入文件。但是这种方法值涉及数字的保存,如果把数字和字符夹杂在一起,并要求以记事本打开时能看到数字,就不用itoa函数,就要将这些整数数字转换为ASCII码,然后在下写入文件。
    FILE *pFile=fopen("3.txt","w");
    int i=98341;
    char ch[5];
    itoa(i,ch,10);
    fwrite(ch,1,5,pFile);
    fclose(pFile);
    展开全文
  • 二进制文件与文本文件的区别

    千次阅读 2017-05-03 16:27:48
    文本文件和二进制文件的定义: 计算机在物理内存上面存放的都是二进制,所以文本文件和二进制文件的主要区别是在逻辑上的而不是物理上的。而从文件的编码方式来看,文件可以分为文本文件和二进制文件。文本文件...

    文本文件和二进制文件的定义:


    计算机在物理内存上面存放的都是二进制,所以文本文件和二进制文件的主要区别是在逻辑上的而不是物理上的。而从文件的编码方式来看,文件可以分为文本文件和二进制文件。文本文件是基于字符编码的文件,常见的有ASCII、Unicode等,二进制文件是基于值编码的文件,可以看成是变长编码,你可以根据自己的需要,决定多少个比特代表一个值。


    文本文件和二进制文件的存储:


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

    文本文件是把数据的终端形式的二进制数据输出到磁盘上存放,即存放的是数据的终端形式

    在实际存储中最好是将数据分成字符数据和非字符数据两类:

    如果存储的是字符数据,无论采用文本文件还是二进制文件都是没有任何区别的,所以讨论使用文本文件还是二进制文件是没有意义的。

    如果存储的是非字符数据,又要看我们使用的情况来决定:

    a:如果是需要频繁的保存和访问数据,那么应该采取二进制文件进行存放,这样可以节省存储空间和转换时间。

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


    例如:




    文本文件的打开方式和二进制文件打开方式的区别:


    (1)文本模式中回车被当成一个字符'\n',在文件中如果读到0x1B,文本模式会认为这是文件结束符,会按照一定方式对数据做相应的转换。

    (2)二进制模式中'\n'会被认为是两个字符0x0D,0x0A;在读到0x1B时,二进制模式不会对文件进行处理。

    展开全文
  • 一:二进制文件 概念:如果一个文件的后缀是 .npy / .npz 则为一个二进制文件 二进制文件生成 np.save(“file_name”,array) 注:save默认保存的为.npy文件,file_name可不加后缀,且只能保存一个数组 arr1 = np....

    Numpy文件操作

    一:二进制文件

    概念:如果一个文件的后缀是 .npy / .npz 则为一个二进制文件

    1. 二进制文件生成

      np.save(“file_name”,array)

      注:save默认保存的为.npy文件,file_name可不加后缀,且只能保存一个数组

      arr1 = np.random.random(100).reshape((10,10))
      np.save("arr1",arr1)
      
    2. 二进制文件读取

      np.load(“file_name”)

      注:读取时文件名必须加后缀名

      data = np.load("arr1.npy")
      print(data)
      
    3. 多个数组的保存

      np.savez(“file_name”,array1,array2,…)

      arr2 = np.random.random(100).reshape((10,10))
      np.savez("arr2",arr1,arr2) 	
      
    4. 多个数组的读取

      np.load(“arr2.npy”)

      我们在存储多个数组时,其实是存储了两个数组文件,我们可以通过列表索引的方式将数组的内容取出来。

      data = np.load("arr2.npy")
      
      # 读取数组
      print(data)
      # 结果
      <numpy.lib.npyio.NpzFile object at 0x7fc5bf69c1f0>
      
      # 查看npzfile下的npy文件:
      print(list(data))
      # 结果
      ['arr_0', 'arr_1']
      
      # 取值
      print(data["arr_0"])
      

    二:文本文件

    1. 保存

      np.savetxt(“file_name”,arr1,fmt="%d",delimiter=",")

      delimiter:分隔符

      fmt:格式

      arr1 = np.array([[14,4,46,11],[11,44,33,22],[10,32,22,17]])
      
      # 将数组保存为文本格式
      np.savetxt("arr1",arr1,fmt="%d",delimiter=",")
      
    2. 读取

      np.loadtxt(“file_name”,delimiter=",",dtype=“str”)

      # 读取文件
      data = np.loadtxt("arr1",delimiter=",",dtype="str")
      print(data)
      
      # 结果
      [['14' '4' '46' '11']
       ['11' '44' '33' '22']
       ['10' '32' '22' '17']]
      
    展开全文
  • 二进制文件、文本文件

    万次阅读 多人点赞 2018-08-11 14:19:21
    二进制文件和文本文件都是按照二进制存储的,只不过文本文件是把一个字节一个字节解读成字符,而二进制文件可以任意定义解读方式。 在windows上,用记事本就可以打开文本文件了,但要打开二进制文件需要对应的...

    先说结论:

    二进制文件和文本文件都是按照二进制存储的,只不过文本文件是把一个字节一个字节解读成字符,而二进制文件可以任意定义解读方式。


    在windows上,用记事本就可以打开文本文件了,但要打开二进制文件需要对应的二进制文件解码器,因此,文本文件是更为大家所熟知的文件形式,而二进制文件的优点在于它的输入输出都省去了转换的过程,而且更省空间。

    文件的读写过程:

    磁盘— 文件缓冲区 — 应用程序的内存空间

    我们说的,“文本文件和二进制文件没有区别”,实际上针对的是第一个过程,那么打开方式不同,为何显示内容就不同呢?这个区别实际上是第二个过程造成的。

    我们说文本文件是特殊的二进制文件,是因为文本文件实际上的解释格式已经确定了:ASCII或者Unicode编码。这些都是针对文本的编码格式。二进制文件则可以有各种存储结构。

    举个实例:

    file = open('test.txt', 'wb')  # 创建test.txt文件
    file.write(b'\x41\x42')  # 直接向其写入十六进制数据0x41和0x42(字符串AB)
    file.close()  # 关闭文件(相当于保存)
    # 此时用任意文本编辑器打开test.txt,你可以看到字符串AB出现在屏幕上

    字符A和B在ASCII编码格式中对应的十六进制数字分别是0x41和0x42(二进制分别为1000001和1000010)。我可以直接创建一个文件,直接向里面写入十六进制数据0x41和0x42(注意是直接写入数据,不是一般的文本输入),保存之后使用一般的文本编辑器打开,我就能看到字符串AB显示在屏幕上了。


    文本文件是字符编码的文件,二进制文件是对值编码的文件。

    计算机在物理内存上面存放的都是二进制,所以文本文件和二进制文件的主要区别是在逻辑上的而不是物理上的。而从文件的编码方式来看,文件可以分为文本文件和二进制文件。文本文件是基于字符编码的文件,常见的有ASCII、Unicode等,二进制文件是基于值编码的文件,可以看成是变长编码,你可以根据自己的需要,决定多少个比特代表一个值。

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

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

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

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

    这里写图片描述

    文本文件的打开方式和二进制文件打开方式的区别:

    (1)文本模式中回车被当成一个字符’\n’,在文件中如果读到0x1B,文本模式会认为这是文件结束符,会按照一定方式对数据做相应的转换。

    (2)二进制模式中’\n’会被认为是两个字符0x0D,0x0A;在读到0x1B时,二进制模式不会对文件进行处理。

    参考文章:https://blog.csdn.net/double_happiness/article/details/71123809


    二进制文件是包含在 ASCII 及扩展 ASCII 字符中编写的数据或程序指令的文件。一般是可执行程序、图形、图象、声音等等文件。

    文本文件(也称为ASCII文件):它的每一个字节存放的是可表示为一个字符的ASCII代码的文件。它是以 “行”为基本结构的一种信息组织和存储方式的文件,可用任何文字处理程序阅读的简单文本文件。

    文本工具打开一个文件的过程是怎样的呢?拿记事本来说,它首先读取文件物理上所对应的二进制比特流,然后按照你所选择的解码方式来解释这个流,然后将解释结果显示出来。一般来说,你选取的解码方式会是ASCII码形式(ASCII码的一个字符是8个比特),接下来,它8个比特8个比特地来解释这个文件流。例如对于这么一个文件流”01000000_01000001_01000010_01000011”(下划线”_”,为了增强可读性手动添加的),第一个8比特”01000000”按ASCII码来解码的话,所对应的字符是字符”A”,同理其它3个8比特可分别解码为”BCD”,即这个文件流可解释成“ABCD”,然后记事本就将这个“ABCD”显示在屏幕上。

    用记事本打开二进制文件与上面的情况类似。记事本无论打开什么文件都按既定的字符编码工作(如ASCII码),所以当他打开二进制文件时,出现乱码也是很必然的一件事情了,解码和译码不对应嘛。例如文件流”00000000_00000000_00000000_00000001”可能在二进制文件中对应的是一个四字节的整数int 1,在记事本里解释就变成了”NULL_NULL_NULL_SOH”这四个控制符。

    参考文章:
    https://blog.csdn.net/qq_27736025/article/details/50725598
    https://www.cnblogs.com/pengwangguoyh/articles/3223072.html

    展开全文
  • 1:本程序读取二进制文件,并把读到的二进制文件保存文本数据 2:二进制文件内容一系列的三维点云数据,由扫描仪器扫描获得 3:本程序采用了多线程技术,读取二进制文件时,界面不会卡顿 4:实例二进制文件为data....
  • 不同的二进制文件需要不同的软件来打开,例如BMP文件,需要一个读图的软件来打开才能看到里面保存的图像,MP3文件需要一个播放器软件才能听到里面的音频。而文本文件只需要记事本就可以打开查看里面的内容。 2 ...
  • C语言中二进制文件和文本文件的区别

    千次阅读 多人点赞 2015-08-27 13:51:22
    所有的信息在内存中都是以二进制的形式进行存储的,这说明了二进制文件和文本文件不是在硬件上进行区分的。  二进制文本文件因为操作系统的不同而不同,毕竟不同的人实现同一问题的思路也不是完全一样的嘛,首先...
  • 二进制文件和文本文件的区别

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

    千次阅读 2019-06-30 10:55:09
    目录 区别 ... 最近学了一些Python上的文件操作,然后对二进制文件和文本文件产生了兴趣,看了好多好多博客才对这俩的区别有了初步的认识,不同的博客有不同的理解。我将我所看到的博客中的一些...
  • 转换文本数字为二进制保存的例程,可转换整数、浮点数、单精度、双精度,VC6.0编译通过。
  • 介绍了换行和回车符的历史及区别; C语言处理二进制文件和文本文件的唯一区别在于对换行的处理
  • 使用TFileStream 保存文本文件的一些注意事项
  • Opencv将BMP文件保存二进制文本
  • C++二进制文件读写

    2018-04-09 22:50:55
    C/C++实现简单的二进制文件读取和写入示例 1.包含如何读取和写入数字,以及用缓存按字节读取 2.采用标准输入和输出函数创建、打开、关闭文本文件或二进制文件
  • 学习C++的时候,再次接触到这两个概念——文本文件、二进制文件。  在网上查了些资料,在这里分享。我喜欢搞清楚所学习技术的所有概念,这的确需要不少时间,但我乐此不疲,因为我为学到新的知识而开心~  下面是...
  • 关于二进制文件与文本文件

    千次阅读 2017-03-16 21:59:03
    所谓的文本文件其实就是数据格式为字符型,用记事本就能打开的文件,它存储在计算机中以二进制的方式存储,当读出来的时候需要解码,仅仅按照单个字符来解码,用UTF-8还是unicode取决于用户设置的文本编码。...
  • 二进制-文本互转工具

    千次下载 热门讨论 2010-11-26 15:03:00
    文本转二进制的时候可以通过文件和输入文本框两种方式,在即选择了文件同时又输入了文本框内容则程序优先使用文本框内容作为转换依据,转换后的二进制保存为文件形式。接受的文本要求为一个字节的2个字符中间不能有...
  • 实现的功能是 netty客户端发送二进制文件(图片、视频等转化成流的形式) netty服务端接收并保存到本地,并响应给客户端另一个文件,并保存下来 (有没有这样的demo ps:有客户端和服务端)
  • 使用二进制读写,freadf/write读写结构体使用二进制读写读写结构体是长项小结 我们继续上一篇博客来说明fread 和fwrite函数 我们给出一个代码,这次我们读取的时候把块的大小设置为1024,每次读取一个块长度 #define...
  • 二进制用数据流 QDataStream、文本文件用文本流 QTextStream
  • 那就是二进制文件和文本文件中的内容到底是怎么读写的?我们为什么打开二进制文件看到的是一些乱码? 由于今天的时间充足,编找了一点相关资料,并总结了一下。 文件分为两类:文本文件,二进制文件。 ...
  • 架构和运转过程的分析特定于Lotus Notes平台,其后的关于二进制文件和文本文件的讨论则具有普遍性。(严格地说,XPages指的是IBM基于Lotus Domino和JSF的快速开发技术,XPage则指单个页面,两者的首两个字母都大写。...
  • 注意,本工具只适用于分析单字节的简单加密,包括简单的替换密码,异或加密,增减密码,二进制的位运算。。。这些一对一,或者少量一对多的加密方式。 使用时请用十六进制编辑器复制密文和原文到两个txt中,不要用...
  • 根据数据的组织形式,可分为ASCII文件和二进制文件。ASCII文件又称为文本(text)文件,它的每个字节放一个ASCII代码,代表一个字符。二进制文件是把内存中的数据按其在内在中的存储形式原样输出到磁盘上存放。 ...
  • 场景需求:十六进制字符串需要转成二进制bin文件保存下来,例如:hello.txt文件中的内容为“012A134B5F9C”,hello.txt文件中存在六个十六进制的数据,但是我们知道在某些时候文本文件难以满足实际的项目需求,因此...
  • ofstream/ifstream 文本/二进制 方式 读入/出 数据方法 文件 I/O 在C++中比烤蛋糕简单多了。 在这篇文章里,我会详细解释ASCII和二进制文件的输入输出的每个细节,值得注意的是,所有这些都是用C++完成的。 ...
  • 二进制文件读写

    2012-11-04 20:09:57
     我一直以为自己很熟悉如何使用C/C++中的二进制文件,可今天测试的时候突然发现程序生成的二进制文件和文本文件一样。比如:  FILE* fp = fopen("binary","wb");  //FILE* fp = fopen("character.txt","w")...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 212,177
精华内容 84,870
关键字:

二进制保存写文本