9 6 檔案 檔案的隨機訪問

2021-07-13 11:29:03 字數 1038 閱讀 1491

在c++中可以由程式控制檔案指標的移動,從而實現檔案的隨機訪問,即可讀寫流中任意一段內容。

一般文字檔案很難準確定位,所以隨機訪問多用於二進位制檔案。如【

例9.9

】中物件中兩個字串是按實際串長存放的,不是按陣列元素來存放的,而【

例9.10

】中是按陣列長度來存放的,每個物件資料長度固定,所以便於隨機訪問。在ios類中說明了乙個公有列舉型別:

enum seek_dir

;設定「輸入流指標控制字」的成員函式:

istream&istream::seekg(streampos); //指標直接定位

istream&istream::seekg(streamoff, ios::seek_dir); //指標相對定位

long istream::tellg(); //返回當前指標位置

流的指標位置型別streampos和流的指標偏移型別streamoff定義為長整型,也就是可訪問檔案的最大長度為4g。例:

datafile.seekg(-20l,ios::cur);

//表示將檔案定位指標從當前位置向檔案頭部方向移20個位元組。

datafile.seekg(20l,ios::beg);

//表示將檔案定位指標從檔案頭向檔案尾方向移20個位元組。

datafile.seekg(-20l,ios::end);

//表示將檔案定位指標從檔案尾向檔案頭方向移20個位元組。

tellg()和seekg()往往配合使用。

//指標不可移到檔案頭之前或檔案尾之後。設定「輸出流指標控制字」的成員函式:

ostream&ostream::seekp(streampos);

ostream&ostream::seekp(streamoff,ios::seek_dir);

long ostream::tellp();

為了便於記憶,函式名中g是get的縮寫,而p是put的縮寫。對輸入輸出檔案定位指標只有乙個但函式有兩組,這兩組函式功能完全一樣。【例9.11】使用隨機訪問對【例9.10】進行改造。(

檢視原始碼

moto E2檔案訪問

折騰了幾天終於在moto e2手機上的檔案訪問成功了,我在j2me中訪問手機目錄 目錄字首file 也可以用 file localhost 主目錄 手機目錄 phone 所以moto機器的檔案目錄為file phone 或者file localhost phone 儲存卡目錄為file sd mot...

1 檔案測試 2 檔案操作

1 檔案測試函式 2 檔案操作 新建檔案 fopen filename,w 以 寫 的方式開啟乙個不存在的檔案,就會新建該檔案 檔案刪除 unlink 檔案複製 copy filename,aaa bb.txt 盡量使用 和相對路徑,因為linux只認 也沒有磁碟分割槽,而windows 和 都認 ...

LINUX學習筆記9 檔案訪問

a 建立檔案 int creat const char filename,mode t mode 1.filename 要建立的檔名 2.include include include 3.mode 建立模式 只能控制建立使用者的寫屬性,其餘使用者都是不可寫,所以一般是755 a s irusr 可...