**:
filestream物件表示在磁碟或網路路徑上指向檔案的流。這個類提供了在檔案中讀寫位元組的方法,但經常使用streamreader或 streamwriter執行這些功能。這是因為filestream類操作的是位元組和位元組陣列,而stream類操作的是字元資料。這是這兩種類的乙個重要區別,如果你是準備讀取byte資料的話,用streamreader讀取然後用 system.text.encoding.default.getbytes轉化的話,如下,則可能出現資料丟失的情況,如byte資料的個數不對等。因此操作byte資料時要用filestream。 string textcontent = filestream.readtoend();byte bytes = system.text.encoding.default.getbytes(textcontent);
字元資料易於使用, 但是有些操作,比如隨機檔案訪問(訪問檔案中間某點的資料),就必須由filestream物件執行.
其中建立filestream物件最簡單的建構函式如下:
filestream file = new filestream(filename,filemode.member);//預設方式,可讀可寫
filestream file = new filestream(filename, filemode.member, fileaccess.member);
而fileaccess的成員:
成 員說 明
read
開啟檔案,用於唯讀
write
開啟檔案,用於只寫
readwrite
開啟檔案,用於讀寫
對檔案進行不是fileaccess列舉成員指定的操作會導致丟擲異常。此屬性的作用是,基於使用者的身份驗證級別改變使用者對檔案的訪問許可權。
在filestream建構函式不使用fileaccess列舉引數的版本中,使用預設值fileaccess. readwrite。
filemode列舉成員,使用每個值會發生什麼,取決於指定的檔名是否表示已有的檔案。
成 員文 件 存 在
檔案不存在
開啟檔案,流指向檔案的末尾,只能與列舉fileaccess.write聯合使用
建立乙個新檔案。只能與列舉fileaccess.write聯合使用
create
刪除該檔案,然後建立新檔案
建立新檔案
createnew
丟擲異常
建立新檔案
open
開啟現有的檔案,流指向檔案的開頭
丟擲異常
openorcreate
開啟檔案,流指向檔案的開頭
建立新檔案
truncate
開啟現有檔案,清除其內容。流指向檔案的開頭,保留檔案的初始建立日期
丟擲異常
filestream類操作的是位元組和位元組陣列,而stream類操作的是字元資料
streamwriter允許將字元和字串寫入檔案,它處理底層的轉換,向filestream物件寫入資料。streamreader也類似。
例項:unity中測試
using system.collections;
using system.collections.generic;
using unityengine;
using unityeditor;
using system.io;
using system.text;
using system;
public class addunusedata :editor
assetdatabase.refresh();
}//streamreader 字元操作 唯讀
[menuitem("tool/streamreader")]
public static void handle_streamreader()
catch (system.exception e)
c 檔案讀寫 文字讀寫
include int main else return 0 格式 intfscanf file stream,constchar format,返回值 如果成功,該函式返回成功匹配和賦值的個數。如果到達檔案末尾或發生讀錯誤,則返回 eof 引數1 file stream 檔案指標 引數2 cons...
C 檔案讀寫
原文 http www.vckbase.com document viewdoc id 1439 原作 john peregrine file i o using c 序論 我曾發表過檔案輸入輸出的文章,現在覺得有必要再寫一點。檔案 i o 在c 中比烤蛋糕簡單多了。在這篇文章裡,我會詳細解釋asc...
C 讀寫檔案
1 使用filestream讀寫檔案 檔案頭 using system using system.collections.generic using system.text using system.io 讀檔案核心 byte bydata new byte 100 char chardata ne...