bytes文件怎么打开|如何快速读取二进制文件

1. 如何快速读取二进制文件

快速读取二进制文件的方法如下:1、打开文件。打开文件可以有两种方式,第一种可以使用fstream类的构造函数。fstream file("test.dat",ios_base::in|ios_base::out|ios_base::app); 另外一种方法就是使用open函数。fstream file;file.open("test.dat",ios_base::in|ios_base::out|ios_base::app);这样就可以打开一个可读写的文件了。如果文件不存在的话,就会创建一个新文件并且以读写方式打开。这里需要说明一点,如果文件不存在的话,open函数中第二个参数必须包含ios_base::out|ios_base::app,否则就不能正确创建文件。2、写文件。先进性写文件的操作否则读一个空文件是没有意义的。既然是写二进制文件可以向文件中写入一个整形值。写二进制字符只能使用write函数。但是write函数的原形是write(const char * ch, int size)。第一个参数是char *类型,所以需要把将要写入文件的int类型转换成char *类型。这里的转换困扰了我好几天,不过终于弄明白了。代码如下。int temp; file.write((char *)(&temp),sizeof(temp));3、读文件。可以写文件了,读文件就好办多了。读文件需要用到read函数。其参数和write大致相同,read(const char * ch, int size)。要把内容读到int类型变量中同样涉及到一个类型转换的问题。和写文件一样。int readInt; file.read((char(&readInt),sizeof(readInt)); 这样文件中的int值就读入到int型变量readInt中了。4、文件指针。在文件的读写过程中往往需要对文件进行选择性读取。所以需要进行文件指针的移动。这是需要用到seekg和seekp函数。在fstream类中有两个文件指针,一个是读取文件的指针,一个是写文件的指针分别用tellg和tellp文件来取得指针的位置。同样seekg和seekp两个函数分别是对这两个指针进行移动的函数。这两个函数的参数都是一样的。先对几个枚举类型进行一下说明:ios_base::beg ——文件开始位置ios_base::cur ——文件当前位置ios_base::end ——文件末尾位置下面以seekg为例说明一下指针移动的方法:file.seekg(3) ——指针移动到第三个字符的位置file.seekg(ios_base::beg) ——指针移动到文件开头file.seekg(ios_base::end) ——指针移动到文件末尾file.seekg(-3,ios_base::cur) ——指针当前位置向前移动三个字符file.seekg(3,ios_base::cur) ——指针当前位置向后移动三个字符file.seekg(3,file.tellg()) ——指针当前位置向后移动三个字符file.seekg(file.tellg()+3) ——指针当前位置向后移动三个字符5、对文件操作完毕后别忘了关闭文件。

2. 二进制文件用什么打开

问题一:如何查看二进制文件的文件内容? 10分 用UltraEdit这个软件 问题二:如何打开二进制文件? 没有专门的软件,office 川ord 打开的是.doc文件。 你下个UltraEdit软件,打开的时候用二进制打开就行了 问题三:打开二进制文件时,fopen函数可以用哪些打开方式 rb 读写打开一个二进制文件,只允许读数据,文件必须存在。 rb+ 读写打开一个二进制文件,允许读写数据,文件必须存在。 wb 只写打开或新建一个二进制文件;只允许写数据。 wb+ 读写打开或建立一个二进制文件,允许读和写。 ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。 问题四:二进制文件与文本文件的区别 计算机能识别的都是二进制代码,不论是文本文件还是音频视频类的多媒体文件都需要转换成二进制文件,计算机才能识别,这就需要有个转换过程:高级语言→汇编语言→机器语言,计算机只能识别的语言–机器语言。 就讲二进制文件和文本文件的区别的话,二进制文件全都是0和1组成的,而文本文件是由字母户数字、符号等组成。。。。。。 问题五:如何快速读取二进制文件 Visual C++ 如何:读取二进制文件 下面的代码示例演示如何从文件中读取二进制数据。使用了 System.IO 命名空间中的两个类:FileStream 和 BinaryReader。FileStream 表示实际的文件。BinaryReader 为允许二进制访问的流提供接口。 下面的代码示例使用由如何:编写二进制文件中的代码创建的称为 data.bin 的文件。 示例 binary_read.cpp pile with: /clr #using using namespace System; using namespace System::IO; int main() { String^ fileName = data.bin; try { FileStream^ fs = gew FileStream(fileName, FileMode::Open); BinaryReader^ br = gew BinaryReader(fs); Console::WriteLine(contents of {0}:, fileName); while (br->BaseStream->Position BaseStream->Length) Console::WriteLine(br->ReadInt32().ToString()); fs->Close( ); } catch (Exception^ e) { if (dynamic_cast(e)) Console::WriteLine(File '{0}' not found, fileName); else Console::WriteLine(Exception: ({0}), e); return -1; } return 0; } 补充 手上的一个VB项目(过程中发现,.Net果然是好啊),需要在一个ActiveX中实现HTTP下载功能,我是采用InternetreadFile这个API来实现,一开始的代码我是这么写的 Function Getdownload(sUrl As String) As boolen Dim s As String Dim hOpen As Long Dim hOpenUrl As Long Dim bDoLoop As Boolean Dim bRet As Boolean Dim sReadBuffer As String * 2048 Dim lNumberOfBytesRead As Long hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0) hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, ……>> 问题六:C++中怎么打开一个二进制文件 估计你对二进制文件概念搞错了,你现在写的是二进制文件(就是计算机内部的格式),这好比电报码不经过译码你是看不懂的。我们能看懂的无论是10进制,16进制,2进制数其实都是从计算机内部的格式(2进制的码)转换出来的文本( 包括楼上说看到四字节05 00 00 00实际上也是用查看工具转出的16进制文本),因此,能看到的2进制数101,实际上是个“101”文本,并不是真正的2进制的码。如果你要保存5的 “二进制码” ,要通过文本查看器就能看到“101”,你实际上要写5的“二进制文本”而不是写“二进制码”。 问题七:在c语言中如何打开二进制文件 不知lz希望得骇什么 二进制的意思是按照数据的原有二进制值写入 与文本模式的差别是不处理行尾 “china” 的 ASCII 就是这样子,还能是什么 问题八:二进制文件的后缀是什么? 如果你是问常用的二进制文件有哪些类型, 那一般有.jpg .doc .mp3等等, 基本上大多数文件都是二进制文件.常用的文本文件后缀为.txt 等等. 但是计算机储存文件都是二进制的, 所谓文本文件是指遵循实现约定的编码规则, 如ASCII码,来记录字符的文件. 后缀的作用只是帮助计算机找出解析这个文件的对应软件和编码方式. 并不会影响文件类型. 如果你吧 .mp2文件后缀改成 .txt, 任然能够用记事本程序打开. 问题九:ultraedit 查看二进制文件 先打开UE,然后把文件拖拽进去 问题十:linux 怎么看完二进制文件 查看二进制文件,用od或hexmp命令。 $ od -tx1 -tc -Ax binFile000000 61 62 63 64 65 31 32 33 34 35 61 62 63 64 65 31 a b c d e 1 2 3 4 5 a b c d e 1000010 32 33 34 35 61 62 63 64 65 31 32 33 34 35 61 62 2 3 4 5 a b c d e 1 2 3 4 5 a b000020 63 64 65 31 32 33 34 35 0a c d e 1 2 3 4 5 \n000029 -tx1选项表示将文件中的字节以十六进制的形式列出来,每组一个字节(类似hexmp的-c选项) -tc选项表示将文件中的ASCII码以字符形式列出来(和hexmp类似,输出结果最左边的一列是文件中的地址,默认以八进制显示) -Ax选项要求以十六进制显示文件中的地址

3. 我通过socket接受到一个bytes, 实际上这个bytes是个zip文件,我怎么通过python读取这个zip文件的内容

比较简单的方法是将bytes存入一个临时文件,然后用zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])打开临时文件,通过ZipFile.testzip()检查文件CRC,成功以后就可以做各种zip操作,比如提取文件之类。具体的函数看一看zipfile库的帮助就有,很简单http://www.python.org/doc//current/library/zipfile.html 如果希望做的更加简洁一些,可以用io.BytesIO,将你收到的bytes转换成file-like对象,可以直接把此对象传入ZipFile的构造方法,回避了临时文件。

4. 怎么用javascript一次读8byte的文本文件

刚好有个介绍filesystem的就有你这个功能:

<p>从www.html5rocks.com/zh/tutorials/file/dndfiles中间“分割文件”部分摘过来的,他是分别读取的1-5,6-15,7-8字节的数据,可以参考一下,很容易改成连续读取8个字节的,你懂的</p><style>#byte_content{margin:5px0;max-height:100px;overflow-y:auto;overflow-x:hidden;}#byte_range{margin-top:5px;}</style><inputtype="file"id="files"name="file"/>Readbytes:<spanclass="readBytesButtons"><buttondata-startbyte="0"data-endbyte="4">1-5</button><buttondata-startbyte="5"data-endbyte="14">6-15</button><buttondata-startbyte="6"data-endbyte="7">7-8</button><button>entirefile</button></span><divid="byte_range"></div><divid="byte_content"></div><script>functionreadBlob(opt_startByte,opt_stopByte){varfiles=document.getElementById('files').files;if(!files.length){alert('Pleaseselectafile!');return;}varfile=files[0];varstart=parseInt(opt_startByte)||0;varstop=parseInt(opt_stopByte)||file.size-1;varreader=newFileReader();//Ifweuseonloadend,weneedtocheckthereadyState.reader.onloadend=function(evt){if(evt.target.readyState==FileReader.DONE){//DONE==2document.getElementById('byte_content').textContent=evt.target.result;document.getElementById('byte_range').textContent=['Readbytes:',start+1,'-',stop+1,'of',file.size,'bytefile'].join('');}};if(file.webkitSlice){varblob=file.webkitSlice(start,stop+1);}elseif(file.mozSlice){varblob=file.mozSlice(start,stop+1);}reader.readAsBinaryString(blob);}document.querySelector('.readBytesButtons').addEventListener('click',function(evt){if(evt.target.tagName.toLowerCase()=='button'){varstartByte=evt.target.getAttribute('data-startbyte');varendByte=evt.target.getAttribute('data-endbyte');readBlob(startByte,endByte);}},false);</script>

5. 如果二进制文件a.dat已经存在,现在要求写入全新数据,应以什么方式打开

如果二进制文件a.dat已经存在,现在要求写入全新数据,应以“wb”方式打开,具体代码如下:

FILE *fp;

fp=fopen(“a.dat”,“wb”);

就会将原来的文件内容全删除,写全新的数据。

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

(5)bytes文件怎么打开扩展阅读:

二进制文件读写操作方法:

1、二进制文件操作

rb – 读的时候获取到的是二进制数据(bytes)

wb – 写的时候写入的内容要求类型是二进制文件

普通的文本文件可以通过二进制的形返誉灶式去打开,影响只是获取到的内容,和写进去的内容的数据类型;二进制文件只能以二进制的形式打开 (例如: 图片、视频、音频等)

2、二进制数据

一般二进制数据都是通过网络请求获取到,或者通过读取本地的二进制文件来虚迟取到

(1)将字符串转换二进制

bytes(字符串, 编码方式)

字符串.encode(编码方式)

(2)将二进制转换成字符串

str(二进制数据, 编码方式)

二进制数据.decode(编码方式)


赞 (0)