C# 文件流 导入 导出
流是二進制字節序列的面向對象的一個抽象概念,.NET 中利用流進行輸入和輸出操作,文件從廣義上可以看成是保存在磁盤上的二進制字節,是按照一定格式存儲的信息。
文件系統類的介紹 文件操作類大都在System.IO命名空間里。
FileSystemInfo類是任何文件系統類的基類;FileInfo與File表示文件系統中的文件;
DirectoryInfo與Directory表示文件系統中的文件夾;Path表示文件系統中的路徑;
DriveInfo提供對有關驅動器的信息的訪問。
FileStream與StreamWriter區別
?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對象執行.
文件流引用:using System.IO;
//創建一個文件流:【讀入流】,使用到的參數:文件的地址、打開文件的方式、文件的訪問權限 ?
??????????? using (FileStream fs = new FileStream(@"D:\file.txt", FileMode.Open, FileAccess.Read))
??????????? {
??????????????? //創建一個內存【緩沖區】,用于存儲讀取到的文件流(字節塊)
??????????????? byte[] buffer = new byte[fs.Length];
??????????????? //從【流】中讀取【字節塊】并將該數據寫入給定緩沖區中
??????????????? fs.Read(buffer, 0, buffer.Length);
??????????????? //使用默認的字符編碼集,將字節數組轉換成字符串
??????????????? rtb_info.Text = Encoding.Default.GetString(buffer);
??????????? }
//創建一個文件流:【輸出流】,使用到的參數:文件的地址、打開文件的方式、文件的訪問權限 ?
??????????? using (FileStream fs = new FileStream(@"D:\file2.txt", FileMode.Create, FileAccess.Write))
??????????? {
??????????????? string str = rtb_info.Text;
??????????????? //使用默認的字符編碼集,將字符串轉換成字節數組
??????????????? byte[] buffer = Encoding.Default.GetBytes(str);
??????????????? // 將字節塊寫入文件流
??????????????? fs.Write(buffer, 0, buffer.Length);
??????????? }
??????????? MessageBox.Show("寫入完成");
StreamReader 寫入? StreamWriter 導出
//獲取應用程序的基目錄
?? ?string basePath = AppDomain.CurrentDomain.BaseDirectory;
//獲取電腦上的所有驅動器信息
??????? DriveInfo[] drives = DriveInfo.GetDrives();
DirectoryInfo dir = dirve.RootDirectory;//獲取驅動器的根目錄信息
var files = dir.GetFiles();//獲取文件夾中所有文件信息
var dirs = dir.GetDirectories();//獲取文件夾中所有子目錄信息
轉載于:https://www.cnblogs.com/lujingBK/p/11234444.html
總結
以上是生活随笔為你收集整理的C# 文件流 导入 导出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WTL 自绘 进度条Progressba
- 下一篇: C#中的深复制与浅复制