Ⅰ 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(編碼方式)