程式中的資料通常儲存在記憶體中,程式關閉後,資料就會清除。檔案就適合儲存相對簡單的資料或程式的計算結果。
建立檔案流
建立閱讀器或者寫入器
執行讀寫操作
關閉閱讀器或者寫入器
關閉檔案流
2.1、檔案流
流是乙個用於資料傳輸的物件。
我們使用的檔案流是filestream類,使用前需要匯入system.io命名空間,它主要用於讀寫檔案中的資料,在建立它的物件時,需要在它的建構函式中指定引數。如下:
filestrean fs = new filestrean(路徑,filemode);
其中的filemode是列舉型別,有以下值:
createnew :建立新的檔案,如果檔案已經存在會異常
create :建立新檔案,檔案如果已經存在了直接開啟已經存在的檔案
open:開啟乙個已經存在的檔案,如果檔案不存在會報錯
openorcreate :檔案存在則開啟已經存在的檔案。檔案不存在則先建立乙個新的檔案,再開啟
truncate:檔案存在的話,先把裡面的內容刪除,然後再往裡面寫內容。檔案不存在會發生異常
2.2、閱讀器/寫入器
2.2.1、寫入器:streamwriter
寫入器建立物件的語法:
streamwriter writer = new streamwriter(檔案流物件);
常用方法有:
streamwriter.write() :用於寫入流,這個流就是我們建立好的流
streamwriter.writeline():用於寫入一行資料,寫入後跟換行符
streamwriter.close():用於關閉寫入器
streamreader reader = new streamreader(檔案流物件);
常用方法有:
streamreader.readline():讀取檔案流中的一行資料,並返回字串
streamreader.readtoend():從當前位置都到末尾,返回字串
streamreader.close():用於關閉讀取器
用streamreader讀取檔案中的中文文字,因為不同的檔案編碼格式的不同導致有時會產生亂碼問題。
所以c#中使用encoding類指定字元編碼。encoding類位於system.text命名空間,用來表示字元編碼。語法如下:
streamreader reader = new streamreader(檔案流物件,encoding.default);
encoding.default:獲取作業系統的當前編碼
也可以通過**encoding類的靜態方法getencoding(string name)**指定字元編碼,引數name必須是c#支援的編碼名。
都位於system.io命名空間中
file類
file是靜態類,它的主要方法如下表所示:
方法名稱
說明delete(string path)
刪除檔案,若檔案不存在,不會異常
exists(string path)
用於檢查指定檔案是否存在,返回bool
copy(string sourcefilepath,string destfilename)
將指定路徑的原始檔中的內容複製到目標檔案中,如果目標檔案不存在,在指定路徑中新建乙個檔案
move(string sourcefilepath,string destfilename)
將指定檔案移動到乙個新的路徑(新路徑不能已存在相同的檔名)
creat(string path)
新建檔案
fileinfo類
fileinfo 是非靜態類
使用時必須建立物件才能使用:
fileinfo fi = new fileinfo(string path);
它的主要屬性和方法如下表所示:
方法/屬性
說明delete() //方法
刪除檔案,若檔案不存在,不會異常
exists //屬性
用於檢查指定檔案是否存在,返回bool
copyto(string destfilename) //方法
將現有檔案複製到新檔案,不允許覆蓋現有檔案
moveto(string destfilename) //方法
將指定檔案移動到乙個新的路徑(新路徑不能已存在相同的檔名)
extension //屬性
獲取表示副檔名部分的字串
name //屬性
獲取檔名
fullname //屬性
獲取目錄或檔案的完整目錄
directory類
directory是靜態類,它的主要方法如下表所示:
方法名稱
說明delete(string path)
刪除指定目錄
exists(string path)
用於檢查指定目錄是否存在,返回bool
move(string sourcefilepath,string destfilename)
用於將檔案或目錄及其內容移動到乙個新位置
createdirectory(string path)
新建檔案
delete(string path,bool recursive)
刪除指定目錄,如果bool值為true,刪除子目錄中的所有目錄內容
getdirectories(string path)
得到當前目錄的子目錄 directory接收
getfiles(string path)
得到當前目錄的所有檔案 file接收
directoryinfo類
directoryinfo 是非靜態類
使用時必須建立物件才能使用:
directoryinfo directoryinfo = new directoryinfo(string path);
它的主要屬性和方法如下表所示:
方法/屬性
說明delete() //方法
刪除目錄
exists //屬性
用於檢查指定目錄是否存在,返回bool
moveto(string destfilename) //方法
將目錄移動到乙個新路徑(新路徑不能已存在相同的目錄名)
name //屬性
獲取目錄的名字
parent //屬性
父級目錄
靜態類非靜態類
用static修飾
不用static修飾
只包含靜態成員
可包含靜態成員
不可以包含例項成員
可以包含例項成員
使用類名呼叫靜態成員
例項物件呼叫非靜態成員
不能被例項化
可以被例項化
不能包含例項建構函式
包含例項建構函式
注意:使用static修飾的類也不能夠被繼承。
C 的簡單檔案操作
檔案操作 1.1 流和檔案流物件 檔案是存放在計算機外存上的一組相關資訊的集合。c 採用 流 的概念來描述檔案。接受資料的地方稱為目標,發出資料的地方稱為源。為了能與檔案交換資料,就需要與檔案建立聯絡,流就是這種聯絡。處理檔案前,必須先建立檔案流物件,它與檔案相關,通過檔案流物件操作檔案。c 提供了...
C 檔案的簡單操作
標頭檔案 include 實現對檔案物件的操作 include 實現輸入輸出定義檔案物件 ifstream file1 x ofstream file2 x file1.close file2.close ifstream file1 x 表示開啟在路徑x 下名為name的txt檔案,並將其命名為f...
c 簡單的檔案操作
使用fileinfo類的物件進行檔案進行外部操作 fileinfo file new fileinfo lzx.txt if file.exists else 這裡可以使用相對路徑和絕對路徑。需要注意是的當前路徑是位於工程檔案的.bin debug下的 fileinfo類下的方法都很好理解,自行檢視...