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();//獲取文件夾中所有子目錄信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM