FileStream類的使用


1、什么是FileStream類

  FileStream 類對文件系統上的文件進行讀取、寫入、打開和關閉操作,並對其他與文件相關的操作系統句柄進行操作,如管道、標准輸入和標准輸出。讀寫操作可以指定為同步或異步操作。FileStream 對輸入輸出進行緩沖,從而提高性能。——MSDN

  簡單點說:FileStream類可以對任意類型的文件進行讀取操作,而且我們也可以根據自己需要來指定每一次讀取字節長度,以此減少內存的消耗,提高讀取效率。

2、File和FileStream的區別

  直觀點:File是一個靜態類;FileStream是一個非靜態類。

  File:是一個文件的類,對文件進行操作。其內部封裝了對文件的各種操作(MSDN:提供用於創建、復制、刪除、移動和打開單一文件的靜態方法,並協助創建FileStream對象)。

  FileStream:文件流的類。對txt,xml,avi等文件進行內容寫入、讀取、復制...時候需要使用的一個工具。

  打個形象的比喻。File是筆記本,需要Filestream的這個筆才能寫.

  換而言之,記事本是一個文件,可以用File操作,里面的內容需要用FileStream來操作。

注:FileStream是對字節操作的(任何文件)。

 1  //非靜態類,創建對象調用方法
 2             using (FileStream Fsread = new FileStream(@"C:\Users\Administrator\Desktop\測試文檔.txt", FileMode.OpenOrCreate, FileAccess.Read))
 3             {
 4                 byte[] b = new byte[50]; 
 5                 //用來限定每次的讀取字節數,也可以byte[] b=new byte[Fsread.Length];
 6                 string s = "";
 7                 while (true)
 8                 {
 9                     int r = Fsread.Read(b, 0, b.Length);
10                     if (r == 0)
11                         break;
12                     s += Encoding.UTF8.GetString(b, 0, r);
13 
14                 }
15                 Console.Write(s);
16                 // Fsread.Close();//關閉當前流
17                 // Fsread.Dispose();//釋放流所使用的資源
18             }

將創建文件流的過程寫在using中,可以自動幫助釋放流所占用的資源。

1  //文件流的寫入
2             using (FileStream fswrite = new FileStream(@"C:\Users\Administrator\Desktop\測試文檔.txt", FileMode.OpenOrCreate, FileAccess.Write))
3             {
4                 string str = "一切皆有可能";
5                 byte[] buffer = Encoding.UTF8.GetBytes(str);
6                 fswrite.Write(buffer, 0, buffer.Length);
7             }

無論是讀還是寫,都要借助一個緩沖區buffer來存取字節。

注意:在寫入和讀取時,字符編碼格式要相同,不然會出現亂碼。

 Encoding.UTF8.GetBytes(str);
 Encoding.UTF8.GetString(b, 0, r);
 

 

 


免責聲明!

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



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