轉自:http://www.oseye.net/user/kevin/blog/85數組
1、文件流 FileStream緩存
FileStream流繼承與Stream類,一個FileStream類的實例實際上表明一個文件流,使用FileStream類能夠對文件系統上是文件進行讀取、寫入、打開和關閉操做。網絡
建立FileStream實例ide
一、.Net提供多種獲取FileStream對象的方法,其中構造函數就有10多種,咱們看下典型的構造函數順便講解下參數含義:函數
參數說明:
path指明文件所在的路徑信息;
mode是FileMode的枚舉值,表示文件打開或建立的方式,含義以下:加密
access是FileAccess的枚舉值,它控制對文件的訪問權限,含義以下:spa
二、除了FileStream類自己提供的構造函數外,System.IO命名空間下的File和FileInfo類也提供了建立FileStream對象的方法。其中OpenRead方法返回只讀文件流,OpenWrite方法返回只寫文件流。如:操作系統
FileStream fs=File.OpenRead(@"c:\file.txt");
FileStream的讀寫方法:.net
public override int Read( byte[] array, //內存緩衝區,儲存從文件流中讀取的數據 int offset, //array開始寫入數據的下標值 int count //從文件流中讀取的字節大小 ); public override void Write( byte[] array, //內存緩衝區,存儲了要寫入流的字節數據 int offset, // 從array的下標值開始取數據 int count //要寫入的字節數 );
FileStream實例 code
try { //寫入 FileStream fileStream = new FileStream(@"d:\test.txt", FileMode.OpenOrCreate); byte[] content = Encoding.UTF8.GetBytes("我愛我家"); fileStream.Write(content, 0, content.Length); fileStream.Position = 0; //設置當前位置 content = Encoding.UTF8.GetBytes("我愛你家"); fileStream.Write(content, 0, content.Length); fileStream.Close(); //讀取 fileStream = new FileStream(@"d:\test.txt", FileMode.Open); content = new byte[fileStream.Length]; fileStream.Read(content, 0, content.Length); Console.WriteLine(Encoding.UTF8.GetString(content)); } catch (Exception ex) { Console.WriteLine(ex.Message); }
2、內存流 MemoryStream
和文件流不一樣,MemoryStream類表示的是保存在內存中的數據流,由內存流封裝的數據能夠在內存中直接訪問。內存通常用於暫時緩存數據以下降應用程序對臨時緩衝區和臨時文件的須要。
既然字節數據也在內存中存儲,爲何還要引入內存流的概念呢?這是由於內存流和字節數組雖然都位於程序緩衝區,可是具備不一樣特性。內存流相對於字節數組而言,具備流特有的特性,而且容量可自動增加,在數據加密以及對長度不定的數據進行緩存等場合,使用內存流比較方便。
建立MemoryStream實例
MemoryStream有多種構造函數,部分舉例以下:
MemoryStream實例
MemoryStream mem = new MemoryStream(); Console.WriteLine("初始分配的容量:"+mem.Capacity+" 初始使用量:"+mem.Length); byte[] content = Encoding.UTF8.GetBytes("我愛我家"); mem.Write(content, 0, content.Length); Console.WriteLine("初始分配的容量:" + mem.Capacity + " 初始使用量:" + mem.Length);
3、網絡流NetWorkStream
網絡流的意思是數據在網絡的各個位置之間是以連續的字節形式傳輸的,NetWorkStream只能用於面向鏈接的套接字。
對於NetWorkStream流,寫入操做是指歷來源端內存緩衝區到網絡上的數據傳輸;讀取操做是從網絡上到接收端內存緩衝區的數據傳輸。
如需對NetWorkStream深刻了解,請查閱相關資料。