二進位制檔案的讀寫操作

2021-09-24 19:36:44 字數 1622 閱讀 7432

二進位制檔案不是以 ascii **存放資料的,它將記憶體中資料儲存形式不加轉換地傳送到

磁碟檔案,因此它又稱為記憶體資料的映像檔案。因為檔案中的資訊不是字元資料,而是位元組

中的二進位制形式的資訊,因此它又稱為位元組檔案。

對二進位制檔案的操作需要先開啟檔案,用完後要關閉檔案。在開啟時要用 ios::binary

指定為以二進位制形式傳送和儲存。二進位制檔案除了可以作為輸入檔案或輸出檔案外,還可以

是既能輸入又能輸出的檔案。這是和 ascii 檔案不同的地方。

用成員函式 read 和 write 讀寫二進位制檔案:

對二進位制檔案的讀寫主要用 istream 類的成員函式 read 和 write 來實現。這兩個成員函

數的原型為

istream& read(char *buffer,int len);

ostream& write(const char * buffer,int len);

字元指標 buffer 指向記憶體中一段儲存空間。len 是讀寫的位元組數。呼叫的方式為:

a. write(p1,50);

b. read(p2,30);

上面第一行中的 a 是輸出檔案流物件,write 函式將字元指標 p1 所給出的位址開始的 50 個

位元組的內容不加轉換地寫到磁碟檔案中。在第二行中,b 是輸入文  件流物件,read  函式從

b 所關聯的磁碟檔案中,讀入 30 個位元組(或遇 eof 結束),存放在字元指標 p2 所指的一段空

間內。class student

;~student() {}

void printt()

private:

int id;

char name[15];

};void main()

student s1(1, "mr");

student s2(2, "miss");

student s3(3, "jack");

student s4(4, "marry");

student s5(5, "like");

student s6(6, "famry");

char s = '\n';

fout.write((char *)&s1, sizeof student);

fout.write((char *)&s2, sizeof student);

fout.write((char *)&s3, sizeof student);

fout.write((char *)&s4, sizeof student);

fout.write((char *)&s5, sizeof student);

fout.write((char *)&s6, sizeof student);

fout.close();

//讀操作

ifstream fin("student_infor.dat",ios::in | ios::binary);

if (!fin)

student s(0,"0");

while (!fin.eof())

}二進位制文字:

二進位制檔案讀寫

define crt secure no warnings include include include size t fread void buffer,size t size,size t count,file stream size t fwrite const void buffer,si...

Java 二進位制檔案讀寫操作

如下 public static byte bsource public static byte btarget public static byte colon 從二進位制檔案讀取位元組陣列 param sourcefile return throws ioexception public sta...

二進位制檔案的讀寫

然後,就在網上搜尋了一下,發現通過c語言實現二進位制檔案讀寫的資料居然出奇的少,這讓我很憤怒,因為雖然這東西很簡單,但是對於初學者,往往會需要花很長的時間去弄,一旦明白,又發現花的時間很不值得,罷了,這裡通過乙個檔案拷貝的例子來講講二進位制檔案的讀寫吧。先介紹函式,我們一共要用到三個函式,fopen...