C# IO 隨筆
File類
1.用File.Create創建文件,會返回一個FileStream對象,如果不關閉這個對象,無法用File.AppendAllText追加文本
報錯示例:
File.Create("D://a.txt");
File.AppendAllText("D://a.txt", "你好");
正確示例:
FileStream fs = File.Create("D://a.txt");
fs.Close();
File.AppendAllText("D://a.txt", "你好");
2.File.Copy如果目標文件存在,會報錯,可以將第二個參數設置為True,覆蓋文件
3.File.Move如果目標文件存在,會報錯,無法進行替換操作
4.File.CreateText跟File.Create情況類似,會返回一個StreamWriter對象 , StreamWriter用法在後面會說到
5.File.OpenRead 和 File.OpenWrite 分別返回 只讀的FileStream對象和 只寫的FileStream對象
6.File.Replace 使用其他文件的內容替換指定文件的內容,這一過程將刪除原始文件,並創建被替換文件的備份
示例:
File.Replace("D://a.txt", "D://b.txt", "D://b-backup.txt");
將文本b.txt的內容,替換成a.txt的內容,刪除b.txt,並建立b的備份文件b-backup.txt
FileInfo類
FileInfo用來表示文件的基本信息 , 同時他還有File類的一些方法
1.Attributes 使用FileAttributes枚舉,獲取或設置當前文件或目錄的特性
2.Extension 獲取文件擴展名,只讀屬性
3.FullName 文件完整路徑(包含文件名),只讀
4.Name 文件名稱(帶擴展名)
5.Directory 包含當前文件的目錄,DirectoryInfo對象,只讀屬性
6.DirectoryName 文件完整路徑(不包含文件名),只讀
File類與FileInfo類的選擇(個人理解 , 勿噴)
- 快速操作文件用File。
- 想用更多的方法、屬性,用FileInfo。
Directory類
1.Directory.CreateDirectory 創建目錄並返回一個DirectoryInfo對象
2.Directory.GetDirectories 返回子目錄的數組
3.Directory.GetDirectoryRoot 返回磁盤根目錄(如 D:/)
4.Directory.GetFiles 返回指定目錄下所有文件的名稱數組
5.Directory.GetFileSystemEntries 返回指定目錄下 , 文件和目錄名稱的數組,相當於 Directory.GetDirectories 和 Directory.GetFiles的並集
6.EnumerateDirectories , EnumerateFiles ,EnumerateFilesSystemEntries 相當於2,4,5的3個方法,返回IEnumerable<string>集合,性能比較好
DirectoryInfo類
包含的是Directory的一些基本信息
FileStream類
1.使用示例(最常用的)
FileStream fs = new FileStream("D://a.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
文本讀取
實例化並打開了一個數據流對象
int _length = (int)fs.Length;
byte[] data = new byte[_length ];
聲明一個跟數據流對象同樣長度的byte數組
fs.Read(data,0,_length);
將數據流對象讀取到byte數組內
string str = System.Text.Encoding.Default.GetString(data);
將byte數組轉換成文本
fs.Flush();
fs.Close();
釋放
文本寫入
byte[] b = Encoding.Default.GetBytes("你好");
將文本轉換成byte數組
fs.Write(b, 0, b.Length);
寫入
fs.Flush();
fs.Close();
釋放
未完待續~~~~~~~~~~~~~~~~~~~~~~
C# IO 隨筆