C# FileStream 對象 —— 文件位置
FileStream類維護(hù)內(nèi)部文件指針,該指針指向文件中進(jìn)行下一次讀寫操作的位置。大多數(shù)情況下,當(dāng)打開文件時,它就指向文件的開始位置,但是可以修改此指針。這允許應(yīng)用程序在文件的任何位置讀寫,隨機(jī)訪問文件,或直接跳到文件的特定位置上。當(dāng)處理大型文件時,這非常省時,因?yàn)轳R上就可以找到正確位置。
實(shí)現(xiàn)此功能的方法是SeekO方法,它有兩個參數(shù):第一個參數(shù)指定文件指針移動距離(以字節(jié)為單位)。第二個參數(shù)指定開始計算的起始位置,用&ekOrigin枚舉的一個值表示。SeekOrigin枚舉包含3個值:Begin、Crnrent 和 End。
例如,下面的代碼行將文件指針移到文件的第8個字節(jié)處,其起始位置就是文件的第1個字節(jié):
aFile.Seek(8, SeekOrigin.Begin);
下面的代碼行將文件指針從當(dāng)前位置開始向前移動2個字節(jié)。如果在上面的代碼行之后執(zhí)行下面的代碼,文件指針就指向文件的第10個字節(jié):
aFile,Seek{2, SeekOrigin,Current);
注意讀寫文件時,文件指針會隨之改變。在讀取了10個字節(jié)之后,文件指針就指向被讀取的第10個字節(jié)之后的字節(jié)。
也可以指定負(fù)查找位置,這可與SeekOrigin.End枚舉值一起使用,查找靠近文件末端的位置。下面的代碼會查找文件中的倒數(shù)第5個字節(jié):
aFile.Seek(-5, SeekOrigin.End);
采用這種方式訪問的文件有時稱為隨機(jī)訪問文件,因?yàn)閼?yīng)用程序可以訪問文件中的任何位置。稍后介紹的StreamReader和StreamWriter類可連續(xù)訪問文件,但不允許以這種方式操作文件指針。
點(diǎn)擊加載更多評論>>