日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Stream、FileStream、MemoryStream的区别

發(fā)布時(shí)間:2023/12/20 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Stream、FileStream、MemoryStream的区别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

1.Stream:流,在msdn的定義:提供字節(jié)序列的一般性視圖,Stream提供了讀寫流的方法是以字節(jié)的形式從流中讀取內(nèi)容。而我們經(jīng)常會用到從字節(jié)流中讀取文本或者寫入文本,微軟提供了StreamReader和StreamWriter類幫我們實(shí)現(xiàn)在流上讀寫字符串的功能。

2.FileStream:文件流,繼承Stream。一個(gè)FileStream類的實(shí)例實(shí)際上代表一個(gè)文件流,使用FileStream類可以對文件系統(tǒng)上的文件進(jìn)行讀取、寫入、打開和關(guān)閉操作。

public class FileStream : Stream
{

}
public?FileStream(string path, FileMode mode, FileAccess access);
path指明文件所在的路徑信息;
mode是FileMode的枚舉值,表示文件打開或創(chuàng)建的方式
CreateNew:指定操作系統(tǒng)應(yīng)創(chuàng)建新文件,如果文件已經(jīng)存在,則引發(fā)IOException;
?Create:指定操作系統(tǒng)應(yīng)創(chuàng)建新文件,如果文件已經(jīng)存在,它將被覆蓋;
?Open:指定操作系統(tǒng)應(yīng)打開現(xiàn)有文件,如果文件不存在,則引發(fā)FileNotFoundException;
?OpenOrCreate:指定操作系統(tǒng)應(yīng)打開文件,如果文件不存在,則創(chuàng)建新文件;
?Truncate:指定操作系統(tǒng)應(yīng)打開現(xiàn)有文件,文件一旦打開,就將截?cái)酁榱阕止?jié)大小;
?Append:打開先有文件并把Position設(shè)置至文件尾,如果文件不存在將創(chuàng)建新文件。Append只能同F(xiàn)ileAccess.Write一起使用

access是FileAccess的枚舉值,它控制對文件的訪問權(quán)限
?Read:打開文件用于只讀;
?Write:打開文件用于只寫;
?ReadWrite:打開文件,用于讀寫;

//創(chuàng)建新文件
FileStream fileStream = new FileStream(@"d:\test.txt", FileMode.Create);

//讀取
FileStream fileStream= new FileStream(@"d:\test.txt", FileMode.Open);

FileStream fs=File.OpenRead(@"c:\file.txt"); //這樣是返回只讀文件流。

?

3.MemoryStream:和文件流不同,MemoryStream類表示的是保存在內(nèi)存中的數(shù)據(jù)流,由內(nèi)存流封裝的數(shù)據(jù)可以在內(nèi)存中直接訪問。內(nèi)存一般用于暫時(shí)緩存數(shù)據(jù)以降低應(yīng)用程序?qū)εR時(shí)緩沖區(qū)和臨時(shí)文件的需要。

?

相關(guān)用法:

???? MemoryStream ms = new MemoryStream();
???? byte[] buffer = new byte[stream.Length];
???? stream.Position = 0;
???? int arrbyte = stream.Read(buffer, 0, buffer.Length);
?????ms.Write(buffer, 0, arrbyte);

???? FileStream fs = new FileStream(HttpContext.Current.Server.MapPath(FilePath), FileMode.Create);

??????//寫入流文件
??????ms.WriteTo(fs);

???? //釋放內(nèi)存??????
???? ms.Close();
????? fs.Close();
???? ?fs = null;
????? ms = null;

轉(zhuǎn)載于:https://www.cnblogs.com/qqhfeng/p/10167989.html

總結(jié)

以上是生活随笔為你收集整理的Stream、FileStream、MemoryStream的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。