Ⅰ vb.net如何读写二进制文件 有各种类型的变量
open函数用来打开一个文件,其调用的一般形式为:
文件指针名=fopen(文件名,使用文件方式);
其中,
“文件指针名”必须是被说明为FILE
类型的指针变量;
“文件名”是被打开文件的文件名;
“使用文件方式”是指文件的类型和操作要求。
“文件名”是字符串常量或字符串数组。
例如:
FILE
*fp;
fp=("file
a","r");
其意义是在当前目录下打开文件file
a,只允许进行“读”操作,并使fp指向该文件。
又如:
FILE
*fphzk
fphzk=("c:\\hzk16","rb")
其意义是打开C驱动器磁盘的根目录下的文件hzk16,这是一个二进制文件,只允许按二进制方式进行读操作。两个反斜线“\\
”中的第一个表示转义字符,第二个表示根目录。
使用文件的方式共有12种,下面给出了它们的符号和意义。
文件使用方式
意义
“rt”
只读打开一个文本文件,只允许读数据
“wt”
只写打开或建立一个文本文件,只允许写数据
“at”
追加打开一个文本文件,并在文件末尾写数据
“rb”
只读打开一个二进制文件,只允许读数据
“wb”
只写打开或建立一个二进制文件,只允许写数据
“ab”
追加打开一个二进制文件,并在文件末尾写数据
“rt+”
读写打开一个文本文件,允许读和写
“wt+”
读写打开或建立一个文本文件,允许读写
“at+”
读写打开一个文本文件,允许读,或在文件末追加数据
“rb+”
读写打开一个二进制文件,允许读和写
“wb+”
读写打开或建立一个二进制文件,允许读和写
“ab+”
读写打开一个二进制文件,允许读,或在文件末追加数据
对于文件使用方式有以下几点说明:
1)
文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:
r(read):
读
w(write):
写
a(append):
追加
t(text):
文本文件,可省略不写
b(banary):
二进制文件
+:
读和写
2)
凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。
3)
用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。
4)
若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件。但此时该文件必须是存在的,否则将会出错。
5)
在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。因此常用以下程序段打开文件:
6)
if((fp=fopen("c:\\hzk16","rb")==NULL)
{
printf("\nerror
on
open
c:\\hzk16
file
Ⅱ vb.net 二进制读取文件
VB.NET打开二进制文件用fileopen完成,打开二进制文件的形式为:openmode.binary
读取二进制文件用的是fileget方法,写入二进制文件用的是fileput方法。
应用示例:将一批随机数保存在一个dat文件中,然后再将其提取到文本框中。
二进制文件的读写一批随机数的存取,程序为:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x, i, fn As Integer
Dim s As String = ""
fn = FreeFile()
FileOpen(fn, "d:\data.dat", OpenMode.Binary)
For i = 1 To 8
x = Int(Rnd() * 100)
s = s + Str(x)
FilePut(fn, x)
Next
FileClose(fn)
TextBox1.Text = s
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim x, fn As Integer
Dim s As String = ""
fn = FreeFile()
FileOpen(fn, "d:\data.dat", OpenMode.Binary)
Do While Not EOF(fn)
FileGet(fn, x)
s = s + Str(x) + " "
Loop
FileClose(fn)
TextBox1.Text = s
End Sub
Ⅲ vb open函数
open(/dev/ietctl, O_RDWR)
这是文件I/O的常用函数,open函数,open函数用来打开一个设备,他返回的是一个整型变量,如果这个值等于-1,说明打开文件出现错误,如果为大于0的值,那么这个值代表的就是文件描述符。
一般的写法是:
if((fd=open("/dev/ttys0",O_RDWR | O_NOCTTY | O_NDELAY)<0)
{perror("open");}
这个是常用的一种用法fd是设备描述符,linux在操作硬件设备时,屏蔽了硬件的基本细节,只把硬件当做文件来进行操作,而所有的操作都是以open函数来开始,它用来获取fd,然后后期的其他操作全部控制fd来完成对硬件设备的实际操作。你要打开的/dev/ttyS0,代表的是串口1,也就是常说的com1,后面跟的是一些控制字。intopen(constchar*pathname,intoflag,„/*,mode_tmode * / )这个就是open函数的公式。
控制字可以有多种:
O_RDONLY 只读打开。
O_WRONLY 只写打开。
O_RDWR 读、写打开。
O_APPEND 每次写时都加到文件的尾端。
O_CREAT 若此文件不存在则创建它。使用此选择项时,需同时说明第三个参数mode,用其说明该新文件的存取许可权位。
O_EXCL 如果同时指定了O_CREAT,而文件已经存在,则出错。这可测试一个文件是否存在,如果不存在则创建此文件成为一个原子操作。
O_TRUNC 如果此文件存在,而且为只读或只写成功打开,则将其长度截短为0。
O_NOCTTY 如果p a t h n a m e指的是终端设备,则不将此设备分配作为此进程的控制终端。
O_NONBLOCK 如果p a t h n a m e指的是一个F I F O、一个块特殊文件或一个字符特殊文件,则此选择项为此文件的本次打开操作和后续的I / O操作设置非阻塞方式。
O_SYNC 使每次w r i t e都等到物理I / O操作完成。
这些控制字都是通过“或”符号分开(|)
Ⅳ 如果open()函数的打开方式是'r+b',说明是打开一个可随机读写的二进制文件。对吗
A) "ab+" :
文件不存在来时要建立
然后打开一个二进制文件,进行读和追加
B) "wb+" :
文件不存在时要建立
打开一个二进制文件,使文件内容先为空,读和写
C)"rb+" :
文件不存在 报错
存在:打开,源读写二进制文件。
D)"ab":
文件不存在时要建立
然后打开一个二进制文件,进行末尾追加
题目要求打开一个新的二进制文件,该文zd件要既能读也能写,所以是B
Ⅳ C++中怎么打开一个二进制文件
1、使用fopen函数的二进制模式“rb”就可以打开一个二进制文件。
fopen的函数原型:FILE * fopen(const char * path,const char * mode);
fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:
r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,允许读数据。
rw+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
wt+ 读写打开或着建立一个文本文件;允许读写。
at+ 读写打开一个文本文件,允许读或在文本末追加数据。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。
2、例程:
#include<stdlib.h>
#include<stdio.h>
intmain()
{
FILE*fpPhoto,*fpText,*fpTarget;
intiRead;
charszBuf[100];
printf("请输入第一个文件名(jpg): ");
gets(szBuf);
fpPhoto=fopen(szBuf,"rb");
printf("请输入第二个文件名(txt): ");
gets(szBuf);
fpText=fopen(szBuf,"rb");
printf("请输入目的文件名(jpg): ");
gets(szBuf);
fpTarget=fopen(szBuf,"wb");
if(!fpPhoto||!fpText||!fpTarget)
{
printf("打开文件失败! ");
system("pause");
return-1;
}
while((iRead=fread(szBuf,1,sizeof(szBuf),fpPhoto))>0)
fwrite(szBuf,1,iRead,fpTarget);
while((iRead=fread(szBuf,1,sizeof(szBuf),fpText))>0)
fwrite(szBuf,1,iRead,fpTarget);
fclose(fpPhoto);
fclose(fpText);
fclose(fpTarget);
return0;
}
Ⅵ 有什么好的管理二进制文件的方法
快速读取二进制文件的方法如下:
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、对文件操作完毕后别忘了关闭文件。
Ⅶ 弱弱的问 OPEN函数打开文件用二进制方式的参数是什么
在Linux中打开文件不分二进制或文本格式。都是stream。所有 文件 包括文本 二进制文件 设备文件 管道文件 等 都 用 open打开
Ⅷ c 语言open()函数
windows下的文件操作,一般都用C语言的文件函数,其中文件打开函数fopen
fopen函数用来打开一个文件,其调用的一般形式为:
文件指针名=fopen(文件名,使用文件方式)
其中,“文件指针名”必须是被说明为FILE 类型的指针变量,“文件名”是被打开文件的文件名。 “使用文件方式”是指文件的类型和操作要求。“文件名”是字符串常量或字符串数组。例如:
FILE *fp;
fp=("file a","r");
其意义是在当前目录下打开文件file a, 只允许进行“读”操作,并使fp指向该文件。
又如:
FILE *fphzk
fphzk=("c:\\hzk16',"rb")
其意义是打开C驱动器磁盘的根目录下的文件hzk16, 这是一个二进制文件,只允许按二进制方式进行读操作。两个反斜线“\\ ”中的第一个表示转义字符,第二个表示根目录。使用文件的方式共有12种,下面给出了它们的符号和意义。
文件使用方式 意 义
“rt” 只读打开一个文本文件,只允许读数据
“wt” 只写打开或建立一个文本文件,只允许写数据
“at” 希望在文件内追加内容,打开一个文本文件,并在文件末尾写数据
“rb” 只读打开一个二进制文件,只允许读数据
“wb” 只写打开或建立一个二进制文件,只允许写数据
“ab” 追加打开一个二进制文件,并在文件末尾写数据
“rt+” 读写打开一个文本文件,允许读和写
“wt+” 读写打开或建立一个文本文件,允许读写
“at+” 读写打开一个文本文件,允许读,或在文件末追加数 据
“rb+” 读写打开一个二进制文件,允许读和写
“wb+” 读写打开或建立一个二进制文件,允许读和写
“ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据
Ⅸ 用C语言的open怎么以二进制方式打开文件
thanks
Ⅹ 如果二进制文件a.dat已经存在,现在要求写入全新数据,应以什么方式打开
如果二进制文件a.dat已经存在,现在要求写入全新数据,应以“wb”方式打开,具体代码如下:
FILE *fp;
fp=fopen(“a.dat”,“wb”);
就会将原来的文件内容全删除,写全新的数据。
在windows上,用记事本就可以打开文本文件了,但要打开二进制文件需要对应的二进制文件解码器,因此,文本文件是更为大家所熟知的文件形式,而二进制文件的优点在于它的输入输出都省去了转换的过程,而且更省空间。
(10)open方法可以打开二进制文件吗扩展阅读:
二进制文件读写操作方法:
1、二进制文件操作
rb - 读的时候获取到的是二进制数据(bytes)
wb - 写的时候写入的内容要求类型是二进制文件
普通的文本文件可以通过二进制的形式去打开,影响只是获取到的内容,和写进去的内容的数据类型;二进制文件只能以二进制的形式打开 (例如: 图片、视频、音频等)
2、二进制数据
一般二进制数据都是通过网络请求获取到,或者通过读取本地的二进制文件来取到
(1)将字符串转换二进制
bytes(字符串, 编码方式)
字符串.encode(编码方式)
(2)将二进制转换成字符串
str(二进制数据, 编码方式)
二进制数据.decode(编码方式)