C 檔案操作

2022-03-31 05:13:28 字數 1514 閱讀 1352

檔案是永久儲存在磁碟等介質上的一主資料。檔案的型別分類,按儲存方式及結構,可分為順序檔案和隨機檔案;按檔案資料的組織格式,可分為ascii 檔案 和 二進位制檔案。

檔案編碼:

編碼是乙個將一組unicode 字串轉換成乙個位元組序列的過程,解碼是乙個反向操作過程,將乙個編碼位元組序列轉換成一組unicode字元。

檔案編碼,也稱字元編碼,用於指定在處理文字時如何表示字元。

c#裡面提供了乙個物件導向的方法訪問檔案系統,它在system.io 裡面常用的幾個類 filestream、streamreader、streamwriter等等。

c#將檔案看成是順序的位元組流,也稱檔案流。檔案流是位元組序列的抽象概念,檔案可以看成是儲存在磁碟上的一系列二進位制位元組資訊,c#用檔案流對其進行輸入輸出操作,如讀取檔案資訊,向檔案寫入資訊。 

使用filestream 類可以產生檔案流,可以對檔案進行讀取、寫入、開啟和關閉操作。其資料是位元組流,只能進行位元組的讀寫。如果要對文字資料讀寫,就要使用system.io裡的sreamreader類。它提供了文字資料的讀寫方法,它是類似一種特定的編碼從位元組流中讀取字元。

二進位制檔案操作類似,通過binaryreader 和 binarywriter實現

filestream的好處是 可以對任何檔案進行讀寫 ,比如 可以建立excel 檔案 ,直接將檔案的 字尾名改為 xls 就行了。 但是他的缺陷是它是以位元組的形式操作的,如果是像文字這種 使用特定的編碼格式的檔案 ,就需要對乙個個字元進行處理 。而這種時候 我們一般使用 streamread streamwrite 。 

在這裡先要說明乙個問題 : 位元組編碼標記。 

對於文字格式的檔案,可能的編碼方式 是ascii (乙個位元組表示乙個字元 )  或者基於 unicode 的任何格式 。 unicode、 utf7、utf8、和utf32 。windowsnt 、2000、xp、2003、visa、windows server2008、win7、win8 都支援unicode 。 所以文字檔案除了包含ascii 資料外,理論上可以包含unicode utf7 utf8 或 utf32 資料 。其約定是如果檔案是ascii 格式,他就只包含文字。 如果檔案是 unicode格式 ,就用檔案的前兩個或三個位元組來表示,這幾個位元組可以設定為表示檔案中格式 的值的特定組合。 這些位元組稱為 位元組碼標記 。使用標準windows 應用程式開啟檔案時 notepad ,wordpad 程式會自動 識別不同的編碼格式。 正確的讀取檔案 。 streamread 類也能正確的讀取任何格式的檔案 ,也可以使用任何一種編碼格式化 它要輸出的文字 。filestream 讀取和顯示文字就要自己處理這個過程。

關於gbk 檔案編碼格式。

序列化和反序列化

序列化用於將物件的狀態儲存到檔案中。在這一過程中物件的公共欄位和私有字段以及類的名稱都被轉換成位元組流,然後寫入資料流。

反序列化將物件還原其以前的狀態,首先建立用於讀取的檔案流和格式介面,然後用格式介面反序列化該物件。

assetdatabase.getassetpath(objs[0]) assets 下的路徑 包括assets

C 檔案操作與C 的檔案操作

c filestream 檔案流 主要用於使用二進位制方式讀寫檔案資料,可讀取任何檔案 建立filestream物件 e 建立filestream物件 filemode 指定系統開啟檔案的方式filestream fileaccess 指定檔案的訪問方式 read唯讀,write只寫,readwri...

C 檔案操作

c 追加檔案 sw.writeline 追逐理想 sw.writeline kzlll sw.writeline net筆記 sw.flush sw.close c 拷貝檔案 string orignfile,newfile file.copy orignfile,newfile,true c 刪除...

C 檔案操作

c 檔案操作 軒軒 發表於 2006 2 18 12 40 16 在c 中,有乙個stream這個類,所有的i o都以這個 流 類為基礎的,包括我們要認識的檔案i o,stream這個類有兩個重要的運算子 1 插入器 向流輸出資料。比如說系統有乙個預設的標準輸出流 cout 一般情況下就是指的顯示器...